PHP için iyi bir şablon sistemi nedir?

9 Cevap php

Neler iyi / en kolay PHP çiftleşmiş sistemi entegre, ve birini kullanmanın faydaları nelerdir için?

Şu anda hiç birini kullanmayın, ve biraz daha içeriği sunumdan ayırmak için yardımcı olabileceğini düşünüyorum.

9 Cevap

Smarty


Ben (hatta bir paylaşılan barındırma ortamında) yüklemek için, hızlı, kullanımı kolay ve kolay olduğu tespit ettik. Ayrıca bazen kullanışlı XHTML doğrulayarak kullanmanızı gerektirmez (I do geçerli XHTML gerektiren şablon motorları muhtemelen daha hızlı olduğunu düşünüyorum rağmen.)

Bu bir yerde ve başka bir yerde kod içerik olması gerçekten güzel.

Artı sadece HTML ile sınırlı değiliz. I-XML üretmek için kullanılan ve hatta Smarty SQL ettik.

PHP tek başına oldukça iyi bir çiftleşmiş dilidir. En önde gelen PHP çerçeveler sadece bu nedenle ayrı bir çiftleşmiş langauge kullanmayın.

Sadece emin MVC (bir şey resemebling) kullandığınızdan emin olun, ve görünümü dosyaları içinde herhangi bir veri erişimi veya iş mantığı yapmıyoruz.

Ben de yoğun Smarty kullanılır, ama aptal görünümünüzü tutmak için zorlama dışında, düz PHP ile karşılaştırıldığında biraz avantaja sahip bulmak ettik. Ayrıca tasarımcılar için biraz daha iyi görünüyor olabilir, ama aşağı tarafı size esneklik, şablon gerçekleştirmecisidir. Triply iç içe diziler üzerinde döngü gibi şeyler düz PHP ile daha zor hale gelir.

Alex ne dedi takip etmek, ben Rasmus Lerdorf makalesinde The no-framework PHP MVC framework bir göz alarak öneririz.

Rasmus Lerdorf PHP yarattı adam.

Ben bahis PHPTAL.

Bu dosya sözdizimi denetler ve çıkış iyi biçimlendirilmiş XML sağlar with proper escaping. Bu sayfalar bu konuda her zaman endişe programcı olmadan safe against XSS saldırıların olmasını sağlar.

Smarty ve ham PHP her echo $foo veya ${foo} (|escape} veya olmayan htmlspecialchars()) olabilir anlamına gelir ki, otomatik olarak kaçan kolu yok HTML enjeksiyon açığı ya da en azından iyi biçimlilik bölünürler.

PHPTAL nasıl HTML / XML çalışmalarını uyuyor güzel sözdizimi, örneğin vardır Eğer koşullu bir etiketi şey sarmak istediğinizde kendinizi tekrarlamak zorunda değilsiniz:

<strong tal:omit-tag="condition">
  xxx
</strong>

yerine:

{if condition}<strong>{/if}
  xxx
{if condition-again!}</strong>{/if}

Ve sözdizimi (çoğunlukla sadece öznitelikleri eklenir) aşırı ayrıntılı olmadan XML. HTML ve özel etiket gibi yapıların hiçbir çirkin bir karışımı var.

Mark'ın deneyimine ek olarak, uzantısı için çok uygundur Smarty buldum. Ben kolay ve esnek hem de oldu Smarty dayalı yerleşik manzaralı (kurumsal) MVC çerçevesi inşa ettik. Mevcut şablon yardımcı fonksiyonlarının ana da çok kolay bir uzatılabilir.

Belki bir şablon motoru kullanmak için en zorlayıcı nedeni xss vulnerabilites azaltabilir veya ortadan kaldırabilir varsayılan çıkış öncelemeli olduğunu.

Bu sizin odak bağlıdır: farklı motor şablonu farklı şeyler için daha iyi olabilir. Smarty bazılarına göre nispeten ağır ve basit ama PHP'nin daha kısıtlı bir sözdizimi tanımlar. Eğer şablonları oluşturmak için bir grafik tasarımcı soran olacak eğer daha az, örneğin bir programlama dili, gibi bir sözdizimi kullanarak faydaları vardır.

Bu tür Savant3, ya da bir şablon motor, sözdizimi olarak Zend Framework hafif ağırlık ve kullanan PHP Zend_View bileşenleri de kullanılana. Bu size şablonları daha fazla güç ve esneklik verir, ancak şablonlar üzerinden iş mantığı tutmak konusunda disiplinli olmak gerekir. O şablonları bina olacak eğer Ayrıca, PHP sözdizimi, tasarımcı için çok karmaşık olabilir.

Ben şahsen sadece ayrı PHP / HTML dosyaları kullanarak fikir gibi. Ben (Dreamweaver gibi) ve istediğiniz zamanda PHP biliyorum, ama yok insanlar başka bir dil öğrenmek zorunda kalmadan şablonları düzenlemek için HTML biliyor musunuz izin eğer bana diğer HTML editörleri kullanmanıza olanak sağlar.

Ben yıllardır Smarty kullanmış, ancak özel smarty sözdizimi bazı basit php şekilde daha kolay olurdu şekilde, var çünkü var sinirli. PHP itselves onun çok çekirdek bir şablon dili var! Ben php api tüm sunum mantığı için yeterince uygun olduğunu öğrendim.

Savant3 ve onun soyundan Zend_View nedenle üstün çözümler vardır. Smarty gibi, kolayca tekrarlayan görevler için eklentileri yazabilirsiniz.