Sto riscontrando un problema nel far scattare un evento. Ecco il mio codice ...ZF2 Event Trigger
controller.php
function get($id)
{
$this->getEventManager()->trigger('hmac.check');
}
Quando questo trigger è stato eseguito non verrà eseguito l'evento hmac.check anche se è collegato.
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);
}
);
}
}
Se mi associo un messaggio prima o dopo il $ mm-> getEventManager-> attach(); visualizza il test fine, quindi so che sta eseguendo il metodo init.
qualsiasi aiuto con questo sarebbe grande.
Grazie in anticipo
EDIT: Questo è un controller riposante se questo fa alcuna differenza (non credo che lo fa).
grazie, che funziona un piacere :) – mic
Come hai ottenuto questo lavoro? Ho ricevuto il seguente errore: l'argomento 1 passato alla chiusura deve essere un'istanza di Zend \ Mvc \ MvcEvent, istanza di Zend \ ModuleManager \ ModuleEvent fornita – emolah
@emolah, se stai ricevendo un'istanza ModuleEvent, posso solo supporre che tu abbia copiato il codice utilizzato nella domanda, invece del codice indicato nella risposta. – Crisp