PHP fonksiyonları vs site şablonu için içerir

2 Cevap php

Ne bir sayfa için bir şablon kullanmak için en iyi, en kolay ve en hızlı yoludur. Şu anda ben her sayfa için benim şablon oluşturmak için bir işlevi kullanarak edilmiştir.

$title = "Kick Me";
<?php pageHtmlHeadStart($title)>
    <!-- Were Javascript would go -->
<?php pageHtmlHeadEnd(); guiHeader(); ?>

    Content went here.

<?php guiFooter; ?>

I içeren kullanmak için kullandığı ...

<?php include('header.php'); ?>

    Content went here.

<?php include('footer.php') ?>

Ben de aynı şeyi yapmak için PHP nesne kullanarak düşünüyordum. Bunu yapmanın fonksiyonları yolu gibi çalışır. Ben şablonu sarıcı var ve ben farklı bir sayfada tekrar tekrar birkaç saat kullanmalarını içeriği (via eko) görüntülemek için bazı komut içerecek bir GUI sınıf oluşturmak istiyorum.

Bu derken, muhtemelen kendi sorulara cevap verecektir ... Ben geçerli yolu fonksiyonları ile bunu seviyorum. Bu kötü kodlama alışkanlıkları olup olmadığını bilemiyorum.

2 Cevap

Şablonları bağlamında, kullanımı yanlış bir şey yok () ifadeleri yer alıyor. Onlar temiz görünümlü kodu yapmak ve kolay şablonlar arasındaki html parçacıkları paylaşmayı kolaylaştırır.

"Şablon etiketleri" için örnek yöntemleri, statik yöntemleri veya işlevleri kullanmak için İster çerçeve veya uygulama mimarisine bağlıdır. Genellikle OOP bir nesne sihirli kod daha iyi yapmaz her şeyi yapma, gerçekten çok iyi bir şey olsa.

PHP kendisi iyi bir şablon dili yapmak yok. Orada şablonları için başka bir "dil" icat etmeye gerek - ne yanlış, sürece size çözümlü dosyaları önbelleğe olarak (Smarty yaptığı gibi) 'dir.

Sen Savant ve Smarty şablon motorları kontrol etmek isteyebilirsiniz. Ben de çeşitli PHP MVC çerçeveler incelemek ve işler orada nasıl uygulandığını görmek için size tavsiye: Symfony, Kohana.

Bir şablonu istiyorsanız, o zaman bir çiftleşmiş bir dil kullanmak. Çiftleşmiş için PHP Kullanımı bana göre kesinlikle iyi bir uygulama değildir. Bazı iyi bir PHP çiftleşmiş motorları http://digg.com/programming/Top_25_PHP_template_engines anılanlar