Комментарии 8
Что-то Вы с кодом в контроллере перегнули палку, все необходимые расширения Twig'a прописываются в settings.yml, почитайте README к плагину. Да и настройки такого рода нужно выносить в PluginConfiguration.
Вообще, по представленному коду сложилось впечатление, что не Symfony не sfTwigPlugin Вам здесь не нужены, т.к. все идет в обход фреймворка и плагина.
Вообще, по представленному коду сложилось впечатление, что не Symfony не sfTwigPlugin Вам здесь не нужены, т.к. все идет в обход фреймворка и плагина.
0
На это:
Если уж совсем никак не обойтись без хелперов в контроллере, то они подгружаются так:
// подгружаем хелперы Symfony require_once 'path_to_symfony_project/lib/vendor/symfony/lib/helper/AssetHelper.php'; require_once 'path_to_symfony_project /lib/vendor/symfony/lib/helper/TagHelper.php';
Если уж совсем никак не обойтись без хелперов в контроллере, то они подгружаются так:
$this->context->getConfiguration->loadHelpers(array('Asset', 'Tag'));
0
хелперы нужны не в контроллере, а в шаблоне, иначе их негде подгружать, кроме как в контроллере (я имею в виду, что точно не в шаблоне)
Прошу вас указать, что именно сделано в обход фреймворка и плагина? Как сделать правильно?
Прошу вас указать, что именно сделано в обход фреймворка и плагина? Как сделать правильно?
-1
Если хелперы нужны в щаблоне, то и подгружают их в шаблоне (по крайне мере так сделано в Symfony)
0
Если отталкиваться от текущего возможностей sfTwigPlugin'a, то достаточно прописать view_class'ы в module.yml (вы это сделали) и указать расширения Twig'a в settings.yml, вот что говорит документация:
Городить процессинг шаблона в контроллере нет нужно, да и неправильно, этим занимаются sfTwigView и sfTwigPartialView. Минимальный набор шаблонов получается такой: apps/frontend/templates/layout.html:
в <module_name>/templates/indexSuccess.html:
блоки и наследование между шаблоном приложения и шаблоном модуля использовать не получится, а вот между шаблонами модуля (в пределах директории templates модуля) — пожалуйста, но «допилить» плагин, думаю, проблемы не составит.
An sf_twig_extensions setting has been added to settings.yml that holds an array of Twig_Extension classes. sfTwigView takes all those names and tries to initiate them into Twig_Environment::addExtension(). If it cannot do that, it will throw an InvalidArgumentException.
Городить процессинг шаблона в контроллере нет нужно, да и неправильно, этим занимаются sfTwigView и sfTwigPartialView. Минимальный набор шаблонов получается такой: apps/frontend/templates/layout.html:
... <body> {{ sf_content }} </body> ...
в <module_name>/templates/indexSuccess.html:
<h1>Postss List</h1> <table class="posts-list"> <thead> <tr> <th>Id</th> <th>Title</th> <th>Text</th> <th>Modified</th> <th>Comments count</th> </tr> </thead> <tbody> {% for posts in postss %} <tr> <td>{{ posts.id }{</td> <td><a href="">{{ posts.title }}</a></td> <td>{{ posts.text }}</td> <td>{{ posts.modified_ }}</td> <td>{{ posts.Comments.count }}</td> </tr> {% endfor %} </tbody> </table>
блоки и наследование между шаблоном приложения и шаблоном модуля использовать не получится, а вот между шаблонами модуля (в пределах директории templates модуля) — пожалуйста, но «допилить» плагин, думаю, проблемы не составит.
0
И еще в догонку)
<td>{ posts.text }</td> -- потенциальная XSS надо добавить фильтр 'escape': <td>{ posts.text | escape }</td>
0
Хорошо, что код контроллера не видели идеологи симфонии, они бы плеваться начали)
0
Вопрос один — зачем вам этот шаблонизатор вообще?
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Интеграция шаблонизатора Twig в Symfony 1.4