У меня есть приложение с 3 модулями и конфигурациями маршрутов, как показано ниже:
- admin.domain.tld/[:controller[:/action]] => Администратор
- rest.domain.tld/[:controller[:/id]] => Остальные
- domain.tld/[:controller[:/action]] => Сайт
и установите псевдоним DI для всех контроллеров в каждом модуле
Псевдоним модуля REST DI:
'alias' => array(
'index' => 'Rest\Controller\IndexController',
...
),
Псевдоним административного модуля DI:
'alias' => array(
'index' => 'Admin\Controller\IndexController',
...
),
Псевдоним DI модуля сайта:
'alias' => array(
'index' => 'Site\Controller\IndexController',
...
),
Как видите, некоторые контроллеры имеют одинаковые имена (например: IndexController
), но поскольку zf2 объединил конфигурацию с поведением LIFO, псевдоним 'index' всегда из последнего добавленного модуля.
Конфигурация приложения
'modules' => array('Rest','Admin', 'Site'),
когда я получаю доступ к http://admin.domain.tld/, я ожидаю, что index
псевдоним дает Admin\Controller\IndexController
, но поскольку модуль сайта ( зарегистрирован последним) имеет тот же псевдоним для index
, что дает Site\Controller\IndexController
Как использовать другой псевдоним DI для соответствия одному и тому же имени контроллера?
per-module solutions
, а до тех пор лучшим решением является использование конкретного маршрутизатора для каждого. - person Komang   schedule 16.04.2012Jurian
ответ ниже. - person Komang   schedule 17.04.2012