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 yapısına ait resmi aşağıda inceleyebilirsiniz .

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

&nbsp

[php]

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’, ‘<p>BODY: Bu mesaj assign() fonksiyonu kullanarak ayarlanmaktadır</p>’);

$smarty->display(‘index.tpl’);

[/php]

HTML yapısında kullanımı :

[php]

<!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>

[/php]

İleriki yazılarımda php ile smarty kullanımını inceleyeceğim .

Smarty son sürümünü indirmek için buraya tıklayınız .