PHP smarty framework nedir ?

PHP smarty framework nedir ?

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

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 .
mvc
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>

 

Posts Carousel