Zend framework2 在初始值设定项闭包中未调用控制器

Zend framework2 在初始值设定项闭包中未调用控制器,zend-framework2,Zend Framework2,我想在我的ZF2项目中将条令实体管理器放入许多不同的类中。因此我在我的Module.php中设置了以下初始值设定项: 'initializers'=>数组( 函数($instance$services){ if(is_object($instance)){//仅用于调试 var_dump(get_类($instance)); } if(!$EntityManagerWareInterface的实例实例实例){ 返回; } $entityManager=$services->get('doctri

我想在我的ZF2项目中将条令实体管理器放入许多不同的类中。因此我在我的
Module.php
中设置了以下初始值设定项:

'initializers'=>数组(
函数($instance$services){
if(is_object($instance)){//仅用于调试
var_dump(get_类($instance));
}
if(!$EntityManagerWareInterface的实例实例实例){
返回;
}
$entityManager=$services->get('doctrine.entityManager.orm_default');
$instance->setEntityManager($entityManager);
},
),
)
然而,即使我正在访问我的
AuthController
控制器的站点,它也不会被调用(并且会得到一个空指针异常,因为没有设置实体管理器)。当然,控制器确实实现了所需的接口:

类AuthController扩展AbstractActionController实现EntityManagerWareInterface 是否还需要配置其他内容,以便根据初始值设定项闭包检查我的
AuthController

目前,我在
module.config.php
中的invokables下找到了它

“控制器”=>阵列(
'invokables'=>数组(
'Auth\Controller\Auth'=>'Auth\Controller\AuthController',
),
),
当我从那里删除它时,应用程序再也找不到该类了

我的调试输出列出了根据初始值设定项、许多管理器和服务检查的其他类。小摘录:

string(37)“Zend\\Mvc\\Controller\\ControllerManager”
字符串(33)“Zend\\Mvc\\Controller\\PluginManager”
字符串(29)“Zend\\View\\HelperPluginManager”
[...]
字符串(24)“条令\\DBAL\\Connection”
字符串(26)“条令\\ORM\\EntityManager”
字符串(41)“Zend\\Authentication\\AuthenticationService”

也尝试为控制器管理器添加初始值设定项,根据调试输出判断,您发布的初始值设定项似乎是针对服务管理器的。以相同的方式配置其他管理器,控制器管理器使用的方法是
getControllerConfig

 public function getControllerConfig()
 {
      return array(
          'initializers' => array(
              // controller initializers here...
          ),
      );
 }