Ich habe eine Anwendung mit 3 Modulen und Strecke configs wie unten:Zend Framework 2 DI alias, gleiche Controller-Namen in verschiedenen Modulen
- admin.domain.tld/[: controller [:/action]] = > Admin
- rest.domain.tld/[: controller [:/id]] => Rest
- domain.tld/[: controller [:/action]] => Site
und Set DI Alias für alle Controller in jedem Modul
REST-Modul DI Alias:
'alias' => array(
'index' => 'Rest\Controller\IndexController',
...
),
Admin-Modul DI Alias:
'alias' => array(
'index' => 'Admin\Controller\IndexController',
...
),
Site-Modul DI Alias:
'alias' => array(
'index' => 'Site\Controller\IndexController',
...
),
Wie Sie sehen, einige Controller hat denselben Namen (zB : IndexController
), aber seit zf2 Config mit LIFO-Verhalten zusammengeführt, 'Index' Alias immer aus dem zuletzt hinzugefügten Modul.
Anwendung Config
'modules' => array('Rest','Admin', 'Site'),
wenn ich http://admin.domain.tld/ Zugriff erwarte ich index
alias gibt Admin\Controller\IndexController
aber da Site-Module (zuletzt registriert) hat gleiche Alias für index
es Site\Controller\IndexController
gibt Wie anders DI Alias verwenden, um Gleicher Controller-Name?
Können Sie einige Ihrer configs/DI veröffentlichen? –
Ich aktualisiere die Frage, um Ihnen DI-Aliaskonfigurationen für jede Modul- und Anwendungsmodulkonfigurationsregistrierung zu zeigen. – Komang
Siehe die Konfigurationen von Akrabat: http://akrabat.com/zend-framework-2/overriding-module-configuration-in-zf2/ Er generiert Router für jedes Modul, nicht Alias. –