Как Symfony обрабатывает маршрутизацию нескольких пакетов?

Я пытаюсь понять систему маршрутизации Symfony.

В app / config / routing.yml у меня есть две конфигурации маршрутизации из двух разных пакетов

firstbundle:
    resource: "@FirstBundle/Resources/config/routing.yml"
    prefix:   /api

secondbundle:
    resource: "@SecondBundle/Resources/config/routing.yml"
    prefix:   /api

`

Так что, если я делаю запрос, как,

https://example.com/app.php/api/images/ (определено в конфигурации первого пакета)

или же

https://example.com/app.php/api/views/ (определено в конфигурации второго пакета)

Как маршрутизатор решает, какой пакет использовать?

Предположим, я собираюсь получить доступ к api./views, в этом случае он также проверит конфигурацию маршрутизации FirstBundle? Мое сомнение касается потока маршрутизации. Маршрутизатор проходит через все конфигурации пакета?

1 ответ

Решение

Маршруты, как и другие параметры конфигурации, анализируются в том же порядке, в котором они отображаются в вашем файле.

Это означает, что если определены два идентичных маршрута (ключи, говоря больше в общем), первый определенный (и, таким образом, проанализированный) будет выбран.

Если вы беспокоитесь о выступлениях, я могу сказать, что это не то, о чем вам следует беспокоиться (они кэшируются)

Другие вопросы по тегам