2011-12-07 109 views
2

我似乎無法弄清楚爲什麼我的事件觀察者在我的機器(和另一位同事)工作,而不是從辦公室的其他機器工作。Magento事件觀察員沒有在某些機器上工作

例如,我有一個偵聽事件的觀察者:

controller_action_postdispatch_adminhtml_process_reindexProcess 

我的代碼檢測該事件並運行一些代碼。當我運行重新索引過程時,我的代碼執行。當辦公室的某些其他機器運行重新索引時,事件不會被解僱,或者我的觀察員沒有檢測到。

爲什麼計算機或用戶點擊管理面板中的重新索引按鈕會改變事件發生或觀察事件的方式?

我已經研究了這個問題,盡我所能,發現這個職位。

Events not firing/or observer not working in magento

但是,這似乎屬於不同的安裝。在我的問題中,它適用於某些計算機上的特定安裝,而不是其他計算機上的安裝,所以我覺得這篇文章並不直接相關。

這個問題讓我發瘋。任何幫助將不勝感激。

回答

3

有一大堆巫術,你可以嘗試的,但你到底是什麼了不得不到底是從這裏開始

#File: app/Mage.php 

public static function dispatchEvent($name, array $data = array()) 
{ 
    Varien_Profiler::start('DISPATCH EVENT:'.$name); 
    $result = self::app()->dispatchEvent($name, $data); 
    #$result = self::registry('events')->dispatch($name, $data); 
    Varien_Profiler::stop('DISPATCH EVENT:'.$name); 
    return $result; 
} 

和調試/日誌您的活動的執行,以確定爲什麼它不是在某些情況下不會發射。

具體回答評論

謝謝!我能夠看到,從複選標記重新索引調用不同的事件,而不是簡單地單擊重新索引過程文本。一個痛苦的長時間錯誤調試,但一個簡單的解決方案。再次感謝! -

+0

是好的poing把Mage :: log($ name);並簡單地比較兩臺電腦的輸出。 –

+0

謝謝!我能夠看到,從複選標記重新索引調用不同的事件,而不是簡單地單擊重新索引過程文本。一個痛苦的長時間錯誤調試,但一個簡單的解決方案。再次感謝! –

0

您確定兩臺計算機上的文件狀態相同嗎? 也許你忘了傳送/登入MyFirm_MyModule.xml並且你的模塊不活動?

計算機是否使用不同的操作系統?如果你在Windows上,並且你的同事在Linux上,那麼模塊名稱的大寫/小寫可能是個問題。