我使用zf2开发我的Web应用程序
我有多个模块可供使用。但是当我在application.config.php文件中启动所有模块时,它将用第二个模块覆盖第一个模块的服务。
例如
在我的application.config
中'modules' => array(
'Application',
'ZfcAdmin',
),
应用程序模块的服务由ZfcAdmin模块
覆盖我已经为两个模块使用了不同的命名空间
由于 萨姆
答案 0 :(得分:0)
这是一项功能。假设如果您从两个模块提供相同的服务,那么它们都将履行相同的角色。
这个概念是ZF2的核心优势之一。想要覆盖Zend内置的东西吗?或者第三方模块中的组件?为您的服务提供与您要覆盖的服务相同的名称。
要解决您的问题,请将ZfcAdmin中的Countrytablegateway重命名为ZfcAdminCountrytablegateway,或者不要为您的服务提供简短(非命名空间)名称或别名。例如
'service_manager' => array(
'invokables' => array(
'ZfcAdminCountrytablegateway' => 'ZfcAdmin\Gateway\Countrytablegateway',
)
)
或
'service_manager' => array(
'invokables' => array(
'ZfcAdmin\Gateway\Countrytablegateway' => 'ZfcAdmin\Gateway\Countrytablegateway',
)
)