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

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

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

Написание следующих строк в моем app / 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", найдено " framework "," безопасность "," веточка "," монолог "," swiftmailer "," ассетик "," доктрина "," sensio_framework_extra "," apy_data_grid "," проект "," acme_demo ", "web_profiler", "sensio_distribution")

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

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


person user2900170    schedule 20.10.2013    source источник


Ответы (1)


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

person shamanSK    schedule 21.08.2014