Smarty
|
|
Ця стаття містить текст, що не відповідає енциклопедичному стилю. (квітень 2010) |
| Розробник(и) | New Digital Group, Inc. |
|---|---|
| Стабільний випуск | 3.1.11 (20 червня 2012) |
| Операційна система | Кросплатформенне програмне забезпечення |
| Тип | компілюючий обробник шаблонів |
| Ліцензія | GNU LGPL |
| Сайт | www.smarty.net |
Smarty — це компілюючий обробник шаблонів до PHP. Надає інструменти, які дозволяють домогтися відділення прикладної логіки й даних від відображення. Це дуже зручно в ситуаціях, коли програміст і верстальник шаблону працюють окремо.
Зміст |
Можливості [ред.]
Smarty дозволяє:
- Створювати функції та модифікатори користувача.
- Використовувати роздільники тегів шаблону.
- Включяти PHP-код прямо в шаблон.
- Користувальницькі функції кешування.
- Використання компонентної архітектури.
Для спрощення створення масштабованих веб-застосунків в Smarty вбудований механізм кешування.
Механізм дії [ред.]
Smarty читає файли шаблонів та створює PHP-код на їх основі. Код створюється один раз і потім лише виконується тому немає необхідності обробляти файл шаблона для кожного запиту та кожний шаблон може користуватися всіма перевагами розширень PHP для кешування байт-коду, таких як eAccelerator або PHP Accelerator. Smarty став, ймовірно, першою шаблонною бібліотекою, яка використала такий механізм. Пізніше з'явилося безліч аналогів, що використовують як smarty-подібний синтаксис шаблонів (Twig або Quicky), так й інші підходи до синтаксису шаблонів.
Компіляція шаблонів дозволяє досягти продуктивності, порівнянної з продуктивністю PHP-шаблонів, написаних вручну[1]. Конструкції if/elseif/else/e передаються обробникові PHP, так що синтаксис виразу {if... } може бути натільки простим або складним, наскільки це потрібно. Можливо необмежене вкладення секцій, умов і т. д.
Приклад коду [ред.]
HTML-сторінка з тегами Smarty:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>{$title_text}</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> </head> <body> {* коментар, якого не буде в HTML коді *} <p>{$body_text}</p> </body><!--коментар, який буде в HTML коді--> </html>
Логіка роботи 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->cache_dir = './templates/cache/'; $smarty->caching = false; $smarty->error_reporting = E_ALL; // LEAVE E_ALL DURING DEVELOPMENT $smarty->debugging = true; $smarty->assign('title_text', 'TITLE: Приклад використання Smarty...'); $smarty->assign('body_text', 'BODY: Це текст, виведений ф-цією assign() '); $smarty->display('index.tpl');
Посилання [ред.]
- Офіційний сайт Smarty (англ.)
- Посібник по Smarty (укр.)
- російськомовна документація до smarty та php (рос.)
