我试图从 Module.php::onBootstrap 方法中设置的关闭事件侦听器中抛出(并在其他地方捕获,但我没有得到那么远)异常。
我得到的是事件管理器的超时和转储,其中跟踪的最后一位显示 em 试图运行关闭。如果未引发异常,则侦听器运行。
任何提示或线索将不胜感激。
public function onBootstrap(\Zend\Mvc\MvcEvent $e)
{
$sharedManager = $e->getApplication()
->getEventManager()
->getSharedManager();
$sm = $e->getApplication()->getServiceManager();
$em = $sm->get('doctrine.entitymanager.orm_default');
$sharedManager->attach(__NAMESPACE__, 'masterform-submit', function ($e) use($em)
{
...
throw new \Exception('Did this work');
...
}
);
}
从控制器:
try{
$this->getEventManager()->trigger('masterform-submit', $this, $data);
} catch ( Exception $e ) {
error_log($e->getMessage());
}