В эти дни я увидел появление Smarty 3 Alpha, поэтому нашел время, чтобы посетить и опросить. Следующий текст в основном взят из файла readme:
Базовая файловая структура файла.
index.php
/libs/
Smarty.class.php #Основной файл
/libs/sysplugins/ #Внутренний плагин
внутренний.*
/plugins/ #Внешний плагин, можно свободно расширять.
функция.mailto.php
модификатор.escape.php
/templates/ #Template, может быть чистым PHP или традиционным смарт-шаблоном.
index.tpl
Index_view.php — это классический фрагмент кода умного вызова:
require('Smarty.class.php');
$smarty=newSmarty;
$smarty->assign('foo','bar');
$smarty->display('index.tpl');
SINGLETON
вроде бы нет.
Имеет ли это смысл?
Фрагмент кода:
$smarty= Smarty::instance();
Использование шаблона smarty перед шаблоном эквивалентно переопределению набора языков тегов, поэтому smarty3 предоставляет новую форму шаблона, которая напрямую поддерживает шаблоны синтаксиса PHP.
Но возникает вопрос, нужно ли нам еще использовать шаблоны?
Пример цитирования шаблонов типов PHP:
фрагмент кода:
$smarty->display('php:mytemplate.tpl');
Знакомый синтаксис можно использовать непосредственно в шаблоне: <?=$foo?> <?=$bar?>
Если вы используете шаблоны PHP, вопросы безопасности придется решать самостоятельно. Но это не проблема для зрелых команд.
Кроме того, новая поддержка шаблонов строкового типа кажется более энергичной, а путь от шаблонов становится все дальше и дальше:
Фрагмент кода:
$smarty->display('string:Это мой шаблон, {$foo}!');
Ссылки по теме smarty3
Smarty 3 Alpha с SVN. Достаточно экономично выбрать службу svn, предоставляемую Googlecode.
Группа рассылки для разработчиков Smarty 3