Интерфейс магазина: Какое первое событие можно наблюдать?


С текущим, ванильным Magento 1.9.1 (CE) или 1.14.1/1.14.2 (EE) какое первое событие, которое можно наблюдать?

  • для внешнего интерфейса (через /index.php; когда установщик уже запущен)
  • для внешнего интерфейса, когда установщик еще не запущен (если это имеет значение)
  • для adminhtml
  • в cron
  • в API веб-сервиса 1
  • в API веб-сервиса 2

(этот вопрос может быть связан с поиском чистых фактов, но более интересным в рамках Magento 1 является то, как найти эти события в коде)


В процессе получения дополнительной информации я собрал некоторые веб-ресурсы:

Author: Community, 2015-04-28

1 answers

Эти события можно наблюдать самостоятельно следующим образом:

/app/Mage.php измените функцию dispatchEvent(), как показано ниже:

/**
 * 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;
}

Теперь, когда вы запустите страницу, вы заметите, что /var/log/events.log регистрирует каждое событие по порядку при загрузке любой страницы, которую вам интересно наблюдать.

Убедитесь, что это выполняется в промежуточной среде, где вы являетесь единственным пользователем сайта, чтобы убедиться, что вы регистрируете правильные события.

Очистите файл журнала после наблюдение за каждой страницей индивидуально, чтобы первое зарегистрированное событие всегда было первым запущенным событием.

 3
Author: Moose, 2015-04-28 06:48:01