Wednesday, December 5, 2012

PHP: Template Engine nedir? Smarty mi Template Lite mı?

PHP ile Model-View-Controller tasarım deseni kullanacaksanız view kısmı için işinizi kolaylaştıracak template engine'ler var. Bunlar tasarımcılar için yapılmış. Yani tasarım ile PHP kodlarını birbirinden ayırmak için düşünülmüş.

Bir template engine kullanarak PHP kodlarını HTML kodlarından ayırabilirsiniz. Böylece PHP kodlarını değiştirdiğinizde arayüz etkilenmez veya arayüzü değiştirdiğinizde PHP kodlarınız etkilenmez. Böylece birbirinden bağımsız tasarım ve programlama yapmış olursunuz. Bu durum daha çok modüler yapı gerektiren büyük projelerde işe yarar, yani proje büyük değilse gereksizdir.

Bazı firmalar template engine olarak Smarty kullanıyorlar, bazıları da Template Lite.

Template Lite, Smarty ile aynı ama daha hızlı. Smarty'nin lite hali diyebiliriz, fakat kullanımı aynı. Detaylı bilgi için projelerin websitelerinden bakabilirsiniz.

Peki nasıl kullanılıyor bu template engine'ler?

Aslında çok basit. Bütün değişkenlerinizi Smarty'e tanımlıyorsunuz, sonra html içerisinde Smarty kodlarıyla ekrana basıyorsunuz.

Küçük bir Smarty örneği verelim. Öncelikle elinizde PHP için bir MVC şablonu yoksa 1 saatte nasıl MVC yapılır görüp, daha sonra Smarty'i indirin.

Örnek açısından ben şimdi sadece smarty kısmını yazacağım. Controller klasörü içerisinde kullandığımız dosyada smarty'i include ettikten sonra kullanacağımız fonksiyona şunu yazarız:

$smarty->assign("selamlasma",  "Merhaba Dunya" );
$smarty->display('anasayfa.tpl');

View klasörü içerisinde ekrana basılacak olan anasayfa.tpl vardır, onun içine şunu yazarız:

<p><span style="color:red;">{$selamlasma}</span></p>

Böylece ekrana "Merhaba Dunya" yazısı basılır. Bir gün geldi selamlaşma şeklini değiştirmek istediniz, artık ekrana Merhaba Dünya değil de başka bir şey yazdırmak istiyorsunuz, o halde programcı sadece controller'ı değiştirir. Başka bir gün geldi tasarımcı bu merhaba dünya yazısının rengini sevmedi ve değiştirmek istedi, o halde sadece view kısmını değiştirir. Tasarımcının kodları bilmesine gerek yoktur.

Demek istediğim; işte bu kadar basit ve kullanışlı. Smarty ya da Template Lite kullanımını öğrenmenizde fayda var.

***

1 comment:

Cem İbrahim ARI said...

Bir çok sebepten ötürü (sections, blocks, cache yapısı.. vs) smarty 'i tercih ederim. Fikir edinmek için güzel yazı olmuş.

Related Posts Plugin for WordPress, Blogger...