Store-Frontend:Was ist das erste Ereignis, das beobachtet werden kann?
-
12-12-2019 - |
Frage
Mit einem aktuellen Vanilla Magento 1.9.1 (CE) oder 1.14.1/1.14.2 (EE) was ist das? Erste Ereignis, das beobachtet werden kann?
- für das Frontend (via
/index.php
;als das Installationsprogramm bereits ausgeführt wurde) - für das Frontend, wenn der Installer noch nicht ausgeführt wurde (falls es einen Unterschied macht)
- für den Adminhtml
- in cron
- in der Webservice-API 1
- in der Webservice-API 2
(Diese Frage könnte nach reinen Fakten suchen, aber im Rahmen von Magento 1 ist es interessanter, wie man diese Ereignisse im Code findet.)
Um mehr herauszufinden, habe ich einige Webressourcen zusammengestellt:
- Was ist das früheste Ereignis, das Magento auslöst? (Fragen und Antworten Juni 2011)
- Magento-Startup-Events (September 2012;von Alan Storm)
- Was ist das erste Ereignis, das in Magento ausgelöst wird? - (April 2014;Tschüss.Schrade)
Lösung
Es ist möglich, diese Ereignisse wie folgt selbst zu beobachten:
/app/Mage.php ändern Sie die dispatchEvent()
Funktion wie folgt:
/**
* Dispatch event
*
* Calls all observer callbacks registered for this event
* and multiple observers matching event name pattern
*
* @param string $name
* @param array $data
* @return Mage_Core_Model_App
*/
public static function dispatchEvent($name, array $data = array())
{
Mage::log($name, null, 'events.log', true); //add this line
Varien_Profiler::start('DISPATCH EVENT:'.$name);
$result = self::app()->dispatchEvent($name, $data);
Varien_Profiler::stop('DISPATCH EVENT:'.$name);
return $result;
}
Wenn Sie nun die Seite aufrufen, werden Sie das bemerken /var/log/events.log
protokolliert jedes Ereignis der Reihe nach, wenn die Seite geladen wird, die Sie beobachten möchten.
Stellen Sie sicher, dass dies in einer Staging-Umgebung durchgeführt wird, in der Sie die einzige Person sind, die die Site nutzt, um sicherzustellen, dass Sie die richtigen Ereignisse protokollieren.
Bereinigen Sie die Protokolldatei, nachdem Sie jede Seite einzeln beobachtet haben, sodass das erste protokollierte Ereignis immer das erste ausgelöste Ereignis ist.