मुझे ट्रिगर करने के लिए कोई ईवेंट प्राप्त करने में कोई समस्या है। यहाँ मेरी कोड ...जेडएफ 2 इवेंट ट्रिगर
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 ज़ेंड \ Mvc \ MvcEvent का उदाहरण होना चाहिए, उदाहरण के लिए – emolah
@emolah दिए गए ज़ेंड \ ModuleManager \ ModuleEvent का उदाहरण होना चाहिए, अगर आपको मॉड्यूलवेवेंट उदाहरण मिल रहा है, तो मैं केवल यह मान सकता हूं कि आपने कॉपी की है उत्तर में दिए गए कोड के बजाय प्रश्न में इस्तेमाल किया गया कोड। – Crisp