PHP ile kullanabileceğimiz birçok framework mevcuttur . Bir çoğu MVC mimarisine sahip framework’ lerdir . MVC ( model – view – controller ) mimarisi yazılımı html taglarını ve veritabanı işlemleri birbirinden ayıran yapıya sahiptir . Smarty ise sadece yazılımı html taglarından ayıran yapıdadır . Bu tip yapılara sahip framework’ lere tamplate engine denir .
MVC yapısına ait resmi aşağıda inceleyebilirsiniz .
Smarty açık kaynak kodlu php template motorudur . Ön tanımlı olarak hemen hemen tüm php hazır sistem fonksiyonlarını içerisinde barındırır . Öne çıkan birkaç özelliğini aşağıdaki gibi sıralayabiliriz .
- Control flow, foreach
- if, elseif, else gibi koşullu ifadeleri kullanabilme
- Değişken oluşturabilme ve özelleştirme – Örnek {$variable|nl2br}
- Hazır fonksiyonlar – Örnekler {html_select_date start_year=’-5′ end_year=’+5′}
- Fonksiyonları kendi düzenleyecileri ile oluşturabilme imkanı / fonksiyonlar / çıkış filtreleri
- Sayfaları önbelleğe alabilme
Sayfa önbellekleme yani cache özelliği kullanışlı ve kolaydır . Küçük bir kod ile kolayca cache özelliğini aktif edebiliriz .
Smarty yapısına ait kod aşağıdaki gibidir .
define('SMARTY_DIR', 'smarty-2.6.22/' ); require_once(SMARTY_DIR . 'Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = './templates/'; $smarty->compile_dir = './templates/compile/'; $smarty->assign('title_text', 'TITLE: Smarty için basit bir örnek ...'); $smarty->assign('body_html', 'BODY: Bu mesaj assign() fonksiyonu kullanarak ayarlanmaktadır'); $smarty->display('index.tpl');
HTML yapısında kullanımı :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html> <head> <title>{$title_text|escape}</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> {* Sayfada görünmeyen HTML yorumu *} {$body_html} </body> </html>