«с тендером можно быть уверенным в том, что заказ достанется лучшему, а не тому, кто предложил больше» — ой какая неправда, всегда можно подкупить комиссию и выиграть тендер с отличием в предложенной цене за заказ в 1 рубль! Имел опыт работы в такой компании-победителе тендера. ИМХО, в России коррупция везде, ну нет такого госоргана, где нельзя заплатить и получить более высокие привилегии.
Какое-то время пользовались их VRS-9, все устраивло, на тикеты отвечали буквально в течении часа. Сейчас запросы возросли, используем eq4 от hetzner.de
Если отталкиваться от текущего возможностей sfTwigPlugin'a, то достаточно прописать view_class'ы в module.yml (вы это сделали) и указать расширения Twig'a в settings.yml, вот что говорит документация:
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:
блоки и наследование между шаблоном приложения и шаблоном модуля использовать не получится, а вот между шаблонами модуля (в пределах директории templates модуля) — пожалуйста, но «допилить» плагин, думаю, проблемы не составит.
Что-то Вы с кодом в контроллере перегнули палку, все необходимые расширения Twig'a прописываются в settings.yml, почитайте README к плагину. Да и настройки такого рода нужно выносить в PluginConfiguration.
Вообще, по представленному коду сложилось впечатление, что не Symfony не sfTwigPlugin Вам здесь не нужены, т.к. все идет в обход фреймворка и плагина.
Например, в фейсбуке можно заливать фотки в альбом таким же способом. Мне кажется очень удобно, ведь почти у всех в телефоне есть камера и gprs, сфоткал -> отправил.
Если стол с выдвижной подставкой под клавиатуру, то можно купить такую штуку www.electro-mpo.ru/card9026.html и просто закрепить над подставкой, стоит ~150р. есть крепежи и удобный выключатель(: Плюс свет не бьет в глаза.
<td>{ posts.text }</td> -- потенциальная XSS надо добавить фильтр 'escape': <td>{ posts.text | escape }</td>Городить процессинг шаблона в контроллере нет нужно, да и неправильно, этим занимаются 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 модуля) — пожалуйста, но «допилить» плагин, думаю, проблемы не составит.
Если уж совсем никак не обойтись без хелперов в контроллере, то они подгружаются так:
$this->context->getConfiguration->loadHelpers(array('Asset', 'Tag'));Вообще, по представленному коду сложилось впечатление, что не Symfony не sfTwigPlugin Вам здесь не нужены, т.к. все идет в обход фреймворка и плагина.