Smarty

Smarty, PHP ile yazılmış bir şablon motorudur. Özellikle web geliştirirken tasarım ve yazılım süreçlerinin birbirinden bağımsız hale getirilmesini sağlayan bir araç olarak tanınmaktadır.[1].

Smarty
Geliştirici(ler) Monte Ohrt, Messju Mohr
Güncel sürüm 3.0.6
Programlama dili PHP
Tür Şablon motoru
Lisans LGPL
Resmî sitesi www.smarty.net/ 
Kod deposu

Özellikler

Birçok üst düzey şablonun programlama özelliklerini destekler:[2]

  • 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 imkânı / fonksiyonlar / çıkış filtreleri
  • Sayfaları önbelleğe alabilme

Smarty örneği

Smarty etiketleri bir HTML şablonunda aşağıdaki gibi kullanılmaktadır:

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

HTML şablonda kullanılmak üzere smarty kodu aşağodaki gibi geliştirilmelidir.

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');

Daha fazla bilgi

Kaynakça

  1. Parr, Terence John (2004). Enforcing strict model-view separation in template engines. Proceedings of the 13th international conference on World Wide Web. ISBN 1-58113-844-X.
  2. "Is Smarty right for me?". 11 Ağustos 2010 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Mart 2011.

Dış bağlantılar

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.