如何从 zendframework 2 中的控制器插件中获取控制器?

2024-03-25

我正在 zf2 中编写一个控制器插件。 我使用以下方法从插件内获取控制器,但它返回 null。

$controller = $this->getController()

有什么建议吗?


请注意,这个答案基于我使用 ZF1 的经验,并快速浏览了 ZF2 代码。查看这个答案 https://stackoverflow.com/a/13175394/45531.

我还没有玩过 ZF2,但如果调度过程和插件与 ZF1 类似,则插件无法访问控制器(至少不能以微不足道的方式),因为控制器甚至没有为某些插件挂钩。

Update:快速浏览了一些库存 ZF2 控制器插件(因为我似乎找不到官方文档creating自定义插件),并查看检查像下面这样 https://github.com/zendframework/zf2/blob/master/library/Zend/Mvc/Controller/Plugin/Redirect.php#L44:

$controller = $this->getController();
if (!$controller || !method_exists($controller, 'plugin')) {
//...

所以看起来在某些情况下控制器可能没有设置。由于插件还支持(据我所知)事件侦听器,我的猜测是它们仍然可以在响应过程中的不同时间使用,这可能是在分配控制器之前。

希望使用过 ZF2 的人可以过来纠正我的错误 https://stackoverflow.com/a/13175394/45531;但也许我至少给你指出了一个有点合理的方向。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 zendframework 2 中的控制器插件中获取控制器? 的相关文章

随机推荐