PHP manzaralı başa doğru yolu

4 Cevap php

Geçmişte, ben temelde bir görünüm (yani search.php veya display.php) ve işlevleri (yani library.php) bir grup ile büyük bir dosya ile benim uygulamalar oluşturma oldum. Ben oa çerçevesinde w / MVC yol giderek tüm bu değiştirmek niyetinde. Ben sadece yeni bir çerçeve öğrenmek için zaman yok, ben bu halletmek istiyorum ve benim html kodundan php kodlarını ayırmak için elimden geleni yapacağım. Bunu başarabilirsek, ben mutluyum. Bir anlaşma w / Her neyse, nasıl takip ediyor? Ben bu ben kullanıcının üyelik türü siteler yapmaya başladı beri yanlış şekilde yapıyorum düşünüyorum.

Kullanıcı örneğin stackoverflow alalım. Bir konuk ziyaretçi başlığının üstünde bir "Giriş" sayfasını görür. Giriş yaptığınızda, "başlık" değişiklikleri sitenin bir üyesi alakalı menüleri görüntülemek için. Bu durumda, benim kullanıcı adı ve (birkaç diğerleri ile birlikte) bir çıkış bağlantısını görürsünüz. Ne geçmişte yaptığım benim header.php almak (benim ana sayfanın içine bunu dahil) ve if / else ifadeleri ile birkaç, ben bir kullanıcı oturum olup olmamasına bağlı olarak gösterilir olduğunu.

Ben iki ayrı görüş vardı ki, (geri çağırma yok) yerde bir örneği bulundu. Bir konuk kullanıcı ise bir kullanıcı veya olmayan ve kullanıcı için doğru görünümünü görüntülemek zorunda günlüğü ise takip etmek varsa, çok dağınık Benim kod oturum birinden farklı bir başlık alır gösterilecek.

4 Cevap

Kendi MVC çerçevesi tasarımı için çalışmadan önce ben, (örneğin kohanaphp gibi) kolay bir öğrenme eğrisi ile hafif çerçeve kullanarak öneriyoruz. Daha da önemlisi - - en iyi uygulamalar üzerinde pick up bu şekilde zaten ortak tuzaklardan kaçınmak ve MVC ins ve çıkışları aşina olacaktır. Şerefe.

Ben Smarty şablon motoru bakmak istiyorum. Bu http://www.smarty.net/ mevcuttur

Eğer yüklü aldığım gibi, bu gibi, adlı işletmeye Kontrol ayıran mümkün yazma kodu olmalıdır:

SamplePage.php:

<?php
require 'Smarty.class.php';
class SamplePage extends Smarty
{
    public function handleRequest()
    {
        $this->template_dir = '.';
        $this->assign("text", "Hello World!");
        $this->assign("userLoggedIn", true);
        $this->display('SamplePage.htm');
    }
}
$page = new SamplePage();
$page->handleRequest();
?>

SamplePage.htm:

<h1>{$text}</h1>
{if $userLoggedIn}
  You are logged in.
{else}
  You are not logged in.
{/if}

Bu örneği çalıştırmak için templates_c adında bir web sunucusu yazılabilir dizin oluşturmanız gerekir.

MVC bir "en iyi uygulamalar" paketi daha olduğunu .. ben herhangi bir hit olmadan kontrolörleri kod uygulaması yazıyorum insanlar gördük .. yani evet her şey biraz gider. Ancak ne arıyorsun .. ben smarty yol gitmezdik katmanları bölmek için bir yoldur .. u yepyeni bir dil öğrenmek zorunda kalacak .. ben herhangi bir hafif MVC öğrenmek biraz zaman harcamak için teşvik edecek .. i gerçekten Kod Ateşleyici gibi .. ben bunu birkaç kez kullanmış, oldukça hızlı başladı alır. orada belki birkaç diğer seçenekleri.

Özel durum için diyelim ki o olmadığında $ _SESSION [userID], mevcut ve diğer ishal olduğunda 2 ... bir ishal içeren vardır sağlayan bir ana şablon olabilir. Bu konuda gitmek için çeşitli yollar .. bu sadece bir fikir.

Diğerleri gibi ben u bir gün geçirmek ve temel bir MVC framework öğrenmek, tavsiye ederim .. bu uzun vadede yardımcı olacaktır.

Insanlar "senin html dışarı php tutmak" diyebilirsiniz ne zaman götürmek için ana şey görüşlerin dışında iş mantığı tutmak gerçekten. Böyle geçerli kullanıcı oturumu bağlı bağlantı veya menüde bir günlüğünü görüntülemek için bir liste üzerinde olsun veya olmasın döngü gibi temel bakış mantığını işlemek için kullanıyorsanız eğer html gerçek php kodu / sözdizimi kullanılarak kesinlikle yanlış bir şey yok. Bu ince ve züppe bulunuyor.

<ul>
<?php
    foreach($items as $item):
?>
    <li><?= $item; ?></li>
<?php
    endforeach;
?>
</ul>

Hala bir MVC uygulaması oluşturmak ve mantığa için php kullanabilirsiniz. Sizin iş mantığı alan modelleri ve veri tabanı ile ilgili bir şey olmak.

Burada kendileri olduğunu söyledi konuda iyi bir yazıdır:

http://fabien.potencier.org/article/34/templating-engines-in-php

Sizin bakış kod saf php aksine Smarty gibi bir şablon motoru kullanarak artılarını ve eksilerini iyi bilgi.

Eğer bir şablon motoru kullanmaya karar verirseniz, Smarty için alternatif bir son yayınlanan budak motoru:

dal-proje nokta org

Bu bazı yardımcı umut!