gpt4 book ai didi

zend-framework2 - Controller 不会在初始化器闭包中被调用

转载 作者:行者123 更新时间:2023-12-02 00:12:43 24 4
gpt4 key购买 nike

我想将学说实体管理器放入我的 ZF2 项目中的许多不同类中。因此。我在我的 Module.php 中设置了以下 initializer:

'initializers' => array(
function ($instance, $services) {
if (is_object($instance)) { // just for debugging
var_dump(get_class($instance));
}
if (!$instance instanceof EntityManagerAwareInterface) {
return;
}

$entityManager = $services->get('doctrine.entitymanager.orm_default');
$instance->setEntityManager($entityManager);
},
),
)

然而,它永远不会在我的 AuthController 上调用,即使我正在访问该 Controller 的站点(并得到空指针异常,因为未设置实体管理器)。当然, Controller 确实实现了所需的接口(interface):

class AuthController extends AbstractActionController implements EntityManagerAwareInterface

还有什么我必须配置的,以便根据初始化程序闭包检查我的 AuthController 吗?

目前我在 module.config.phpinvokables 下有它。

'controllers' => array(
'invokables' => array(
'Auth\Controller\Auth' => 'Auth\Controller\AuthController',
),
),

当我从那里删除它时,应用程序再也找不到该类了。

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

string(37) "Zend\\Mvc\\Controller\\ControllerManager"
string(33) "Zend\\Mvc\\Controller\\PluginManager"
string(29) "Zend\\View\\HelperPluginManager"
[...]
string(24) "Doctrine\\DBAL\\Connection"
string(26) "Doctrine\\ORM\\EntityManager"
string(41) "Zend\\Authentication\\AuthenticationService"

最佳答案

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

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

关于zend-framework2 - Controller 不会在初始化器闭包中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14633031/

24 4 0
文章推荐: scala - 将play工程打包成jar/war文件
文章推荐: php - 将 RSS 提要加载到 php 中
文章推荐: twitter-bootstrap - 将自定义属性添加到使用 Angular 的 ng-options 生成的