Frage

Ich muss ein Cookie festlegen oder aktualisieren, aber ich möchte sicherstellen, dass alle (oder so viel wie möglich) der Anfrageverarbeitung vor dem Ausführen meines Cookie -Generierungscodes erfolgen. Wenn der Benutzer sich anmeldet, möchte ich sicherstellen, dass die Anmeldeverarbeitung vor dem Ausführen meines Codes stattgefunden hat, oder wenn der Benutzer etwas zu seinem Wagen hinzufügt, möchte ich wissen, dass die gesamte Wagenverarbeitung zuerst erfolgt.

Gibt es Ereignisse, die unmittelbar vor einer Antwort an den Browser gesendet werden?

War es hilfreich?

Lösung

Die letzte Veranstaltung, die in Magento 1.x entsandt wurde, bevor der Inhalt gerendert wird, ist

controller_front_send_response_after

Wenn es keine zusätzlichen Anforderungen an Beobachterdaten gibt, die Sie benötigen würden, sollte dieser perfekt für Sie sein.

Andere Tipps

Ein praktischer Trick, um Ereignisse zu finden, die während einer Seitenanforderung/-aktion abgefeuert wurden, besteht darin, App/mage.php vorübergehend zu bearbeiten und die Ereignisse an var/log/system.log zu schreiben.

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

zu

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

und dann die Protokolldatei. Ich habe diese Methode äußerst nützlich gefunden und viel Zeit gespart, um nach dieser schwer fassbaren Veranstaltung zu suchen.

Natürlich sollten Sie es sofort entfernen, da Sie nicht geänderte Kerndateien begehen möchten. Ich wickle es in die Entwicklerprüfung ein, nur für den Fall.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top