我有3个模块和路由CONFIGS像下面的应用程序相同的控制器名称:Zend框架2 DI别名,在不同的模块
- admin.domain.tld/[:控制器[:/动作] = >管理
- rest.domain.tld/[:控制器[:/ ID]] =>休息
- 使用domain.tld/[:控制器[:/动作] =>网站
和集每个模块中所有控制器的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将config与LIFO行为合并,所以始终从最后一个添加的模块中获取'index'别名。
应用程序配置
'modules' => array('Rest','Admin', 'Site'),
当我访问http://admin.domain.tld/我希望index
别名给Admin\Controller\IndexController
但由于场地模块(最后注册)有index
它给Site\Controller\IndexController
如何使用不同的DI别名相同的别名匹配相同的控制器名称
你可以发布一些你的配置/ DI吗? – 2012-04-14 19:44:42
我更新了问题,向您展示了每个模块和应用程序模块配置注册的DI别名配置。 – Komang 2012-04-15 06:08:24
查看来自Akrabat网站的配置:http://akrabat.com/zend-framework-2/overriding-module-configuration-in-zf2/他为每个模块生成路由器,而不是别名。 – 2012-04-15 17:42:32