Front-end da loja:Qual é o primeiro evento que pode ser observado?
-
12-12-2019 - |
Pergunta
Com um Magento 1.9.1 (CE) ou 1.14.1/1.14.2 (EE) atual, qual é o primeiro evento que pode ser observado?
- para o front-end (via
/index.php
;quando o instalador já foi executado) - para o frontend, quando o instalador ainda não foi executado (se isso fizer diferença)
- para o administradorhtml
- no cron
- na API de serviço web 1
- na API de serviço web 2
(esta questão pode estar procurando fatos puros, mas o mais interessante no escopo do Magento 1 é como encontrar esses eventos no código)
No processo de descobrir mais, coletei alguns recursos da web:
- Qual é o primeiro evento que o Magento despacha? (Perguntas e respostas, junho de 2011)
- Eventos de inicialização do Magento (setembro de 2012;por Alan Tempestade)
- Qual é o primeiro evento disparado no Magento? - (abril de 2014;tchau.Schrade)
Solução
É possível observar esses eventos da seguinte forma:
/app/Mage.php modifique o dispatchEvent()
funcionar conforme abaixo:
/**
* 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;
}
Agora, ao executar a página, você notará que /var/log/events.log
registra todos os eventos, em ordem, ao carregar a página que você deseja observar.
Certifique-se de que isso seja executado em um ambiente de teste onde você é a única pessoa que usa o site, para garantir que está registrando os eventos corretos.
Limpe o arquivo de log depois de observar cada página individualmente para que o primeiro evento registrado seja sempre o primeiro evento disparado.