Quel est le dernier événement avant que le contenu est EXPEDIE envoyé au navigateur?
-
16-10-2019 - |
Question
Je dois définir ou mettre à jour un cookie, mais je veux faire en sorte que tous (ou autant que possible) du traitement de la demande se produit avant que mon code de génération cookies fonctionne. à savoir si l'utilisateur se connecte à, je veux faire en sorte que le traitement de connexion a eu lieu avant mes courses de code, ou si l'utilisateur ajoute quelque chose à leur panier Je veux savoir que tout le traitement de la commande est faite en premier.
Y at-il des événements qui sont distribués immédiatement avant une réponse est envoyée au navigateur?
La solution
Le dernier événement distribué dans 1.x Magento avant que le contenu est rendu est
controller_front_send_response_after
S'il n'y a pas d'exigences supplémentaires dans les données d'observation que vous auriez besoin, celui-ci devrait être parfait pour vous.
Autres conseils
Une astuce bien pratique, pour trouver des événements déclenchés lors d'une demande de page / action est temporairement modifier app / Mage.php et écrire les événements déclenchés à var / log / system.log
public static function dispatchEvent($name, array $data = array())
{
Varien_Profiler::start('DISPATCH EVENT:'.$name);
$result = self::app()->dispatchEvent($name, $data);
Varien_Profiler::stop('DISPATCH EVENT:'.$name);
return $result;
}
à
public static function dispatchEvent($name, array $data = array())
{
if(mage::getIsDeveloperMode()) {
mage::log($name);
}
Varien_Profiler::start('DISPATCH EVENT:'.$name);
$result = self::app()->dispatchEvent($name, $data);
Varien_Profiler::stop('DISPATCH EVENT:'.$name);
return $result;
}
et puis la queue dans le fichier journal. J'ai trouvé cette méthode extrêmement utile, et sauvé beaucoup de temps à la chasse pour cet événement difficile à atteindre à l'utilisation.
Bien entendu, vous devez supprimer immédiatement, que vous ne voulez pas valider les fichiers de base modifiés. J'enveloppe dans le contrôle de développeur, juste au cas où.