我试图在zend中配置模块.php的完成函数,从我的理解,你需要配置某种类型的侦听器(在引导我认为),将调用完成函数,然后我可以在完成用户请求后执行代码。
有人能提供一些示例代码来设置模块,以便在完成用户请求后调用finish。
谢谢!
您可以在Module.php
的onBootstrap
方法中这样做:
public function onBootstrap(MvcEvent $e)
{
$em = $e->getApplication()->getEventManager();
$em->attach('Zend'Mvc'MvcEvent::EVENT_FINISH, array($this, 'doSomething'));
}
,然后定义doSomething
在Module.php
中的函数,如下所示:
public function doSomething(MvcEvent $e)
{
// your code goes here
}
如果你在同一个事件上附加了多个监听器,你也可以为你想要执行的回调函数添加一些优先级:
$em->attach('Zend'Mvc'MvcEvent::EVENT_FINISH, array($this, 'doSomethingFirst'), 20);
$em->attach('Zend'Mvc'MvcEvent::EVENT_FINISH, array($this, 'doAnotherThingLater'), 10);
优先级越高,执行越早。(默认优先级为1,允许设置负优先级)
基本思想是将侦听器附加到事件,正如您正确地注意到的那样,这样做的位置是在Module
类的onBootstrap
方法中。
public function onBootstrap(MvcEvent $e)
{
$e->getApplication()->getEventManager()->attach(MvcEvent::EVENT_FINISH, function ($e) {
// do something...
});
}