Symfony2 не получает несколько файлов маршрутизации yml / Импорт не работает в файле yml

Итак, во-первых, TL:DR — Symfony не собирает дополнительные файлы маршрутизации в моем комплекте. Не знаю почему. Пробовал делать импорт как в config.yml и тоже не работает

У меня есть несколько контроллеров для удобства обслуживания моего кода. т.е. Все действия, связанные с сайтом, находятся в SiteController, все действия, связанные с приложением, — в AppController и т. д.

Поэтому я решил сделать файлы маршрутизации, чтобы они соответствовали моим контроллерам. Файлы находятся в MyBundle/Resources/config. Дело в том, что они не подхватываются, когда я выполняю php-приложение/консольный маршрутизатор: отладка. Поэтому я подумал, что я просто импортирую их в файл routing_mybundle.yml, который symfony сгенерировал во время процесса generate:bundle. Поэтому я сделал следующее:

imports:
    - { resource: routing_site.yml }
    - { resource: routing_app.yml }

Я получаю сообщение об ошибке, в котором говорится:

routing_mybundle.yml содержит неподдерживаемые ключи для «импорта»: «0», «1». Ожидается одно из: «ресурс», «тип», «префикс», «шаблон», «путь», «хост», «схемы», «методы», «значения по умолчанию», «требования», «параметры».

Я понимаю, что он ищет определенные ключи, но я не уверен, почему он будет работать в файле config.yml, но не в файле routing.yml.

Если я сделаю следующее, это сработает:

imports:
    resource: routing_site.yml

Или, если я «цеплю» импорт в файлы, он работает. Под этим я подразумеваю, что я импортирую routing_app в routing_site и routing_site в routing_mybundle.

Кто-нибудь знает, как заставить работать тег imports или как сделать так, чтобы symfony подхватывал мои файлы routing_**.yml?

Спасибо :)

ИЗМЕНИТЬ:

Спасибо забытому за ответ. Для тех, у кого была та же проблема, что и у меня (несколько файлов конфигурации в одном пакете), вот что мне нужно было сделать в файле routing.yml ВНУТРИ myBundle/Resources/config.

Моя структура каталогов выглядит так

MyBundle/
    Resources/
        config/
            routing.yml
            routing_site.yml
            routing_app.yml

Поэтому мне пришлось сделать следующее

SiteController:
    resource: routing_site.yml

AppController:
    resource: routing_app.yml

Еще раз спасибо


person Drew Landgrave    schedule 13.07.2013    source источник


Ответы (1)


Вы можете импортировать файлы маршрутизации таким образом

routing.yml

SiteBundle:
    resource: "@SiteBundle/Resources/config/routing_site.yml"

AppBundle:
    resource: "@AppBundle/Resources/config/routing_app.yml"

FOSUserBundle сделать то же самое.

person Alexey B.    schedule 13.07.2013
comment
Это сделало это! Спасибо :) Еще раз спасибо - person Drew Landgrave; 14.07.2013