7
我遇到了触发事件的问题。这里是我的代码...ZF2事件触发器
Controller.php这样
function get($id)
{
$this->getEventManager()->trigger('hmac.check');
}
当该触发器运行它不会运行,即使它连接了hmac.check事件。
module.php
class Module
{
/**
* Init the methods
*
* @param ModuleManager $moduleManager
*/
public function init(ModuleManager $mm)
{
$mm->getEventManager()
->attach(
'hmac.check',
function(MvcEvent $evt)
{
echo "The trigger has worked";
$key = $evt->getParams()->fromHeader('key');
$ts = $evt->getParams()->fromHeader('when');
$uri = $evt->getParams()->fromHeader('uri');
$hmac = new \Scc\Hmac\Hmac(new HmacConfig, new HmacStorage);
}
);
}
}
如果我之前或之后,$ MM-> getEventManager->连接()回声出的消息;它显示测试的罚款,所以我知道它正在执行init方法。
任何帮助,这将是伟大的。
在此先感谢
编辑: 这是一个宁静的控制器如果有什么差别(我不认为它)。
谢谢,那可以工作:) – mic
你是如何得到这个工作的?我得到了以下错误:传递给闭包的参数1必须是Zend \ Mvc \ MvcEvent的一个实例,Zend \ ModuleManager \ ModuleEvent的实例给出 – emolah
@emolah,如果您得到一个ModuleEvent实例,我只能假设您复制了在问题中使用的代码,而不是答案中给出的代码。 – Crisp