Активировать расширение TwigLoader Twig в Symfony

Я пытаюсь активировать расширение Twig StringLoader в проекте Symfony 2.3, но просто не могу правильно использовать yaml-синтаксис.

Это сообщение относится к ответу Heyflynn на сообщение, посвященное той же самой проблеме, но предоставляющее решение, которое просто не работает (для меня).

Написание следующих строк в моем приложении / config / config.yml просто дает мне исключение:

# app/config/config.yml acme.twig.extension.loader: class: Twig_Extension_StringLoader tags: - { name: 'twig.extension' } 

Дает мне это:

FileLoaderLoadException: невозможно импортировать ресурс «… / app / config / config.yml» из «… / app / config / config_dev.yml». (Нет расширения, которое может загрузить конфигурацию для «acme.twig.extension.loader» (в … / app / config / config.yml). Посмотрел на пространство имен «acme.twig.extension.loader», рамки »,« безопасность »,« веточка »,« монологи »,« swiftmailer »,« assetic »,« doctrine »,« sensio_framework_extra »,« apy_data_grid »,« project »,« acme_demo »,« web_profiler »,« sensio_distribution », )

(Я уже интересовался появлением acme в acme.twig.extension.loader и заменил его именем пакета проекта, но это снова дает мне одно и то же исключение. Просто отключить его тоже не работает).

Пожалуйста помоги!

Twig не является частью пакета acme, Twig – это комплект поставщика, и поэтому ошибка правильная. Существует не такое пространство имен, как acme.twig.extension.loader

Фиксированный код:

 # services.yml services: twig.extension.stringloader: class: Twig_Extension_StringLoader tags: - { name: twig.extension } 

Это можно добавить в /app/config/config.yml для использования в каждом комплекте или добавить его в папку пакета в /Resources/config/services.yml чтобы использовать его только в определенном пакете.

Затем в шаблонах twig используйте их как:

 {{ include(template_from_string(page.template)) }} 

Вышеупомянутое работает для меня в Symfony v2.5