Zend Framework 2 中的模块管理器是通过服务工厂类创建的。ModuleManager
正在映射到Zend\Mvc\Service\ModuleManagerFactory
。我建议你看看这个ModuleManagerFactory
,看看在模块管理器中注入了什么对象createService()
。
如果你想扩展和使用你自己的模块管理器,你必须创建一个扩展 ModuleManager 的类,同时创建一个覆盖 Zend\Mvc\Service\ModuleManagerFactory 的服务管理器工厂。您使用以下代码是正确的,但将此代码放在/config/application.config.php
文件中很重要,因为这是 Zend\Mvc 用于创建主要服务的配置文件。
// config/application.config.php
'service_manager' => array(
'factories' => array(
'ModuleManager' => 'Path/To/My/ModuleManagerFactory', // <-- Path to MM factory
),
),
下面的链接将为您提供有关使用 \Zend\Mvc 运行哪些默认服务以及如何以及在何处发生这种情况的良好信息:
https://zf2.readthedocs.org/en/latest/modules/zend.mvc.services.html
希望这会有所帮助,反馈将不胜感激:)
斯托扬