Symfony2: как сделать частичное в расширении Twig - PullRequest
1 голос
/ 07 марта 2012

У меня уже есть работающее расширение Twig в моем приложении Symfony2:

namespace Company\MyBundle\Service;

class MyExtension extends \Twig_Extension
{
    // ...
}

Теперь я хочу создать функцию Twig, которая сама принимает некоторые данные и отображает частичный шаблон. Но мой вопрос: как мне получить новый шаблонный экземпляр в моей службе расширения веток?

Вот мой текущий конфиг:

services:
    twig.extension.my_extensions:
        class: Company\MyBundle\Service\TwigExtension
        tags:
            - { name: twig.extension }

Если я сейчас добавлю arguments: [@templating] в конфигурацию, я получу (понятное) исключение циклической ссылки.

1 Ответ

1 голос
/ 07 марта 2012

Кажется, один из рекомендуемых простых способов состоит в том, чтобы напрямую добавить контейнер и извлечь оттуда движок шаблонов. Как вы уже видели, внедрение в шаблонизаторе напрямую вызывает исключение циклической ссылки.

Итак, введите @service_container, и все будет хорошо. Похоже, что такой подход используют такие связки, как FOSFacebookBundle .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...