¿Cuál es el último evento enviado antes de que el contenido se envíe al navegador?

11

Necesito configurar o actualizar una cookie, pero quiero asegurarme de que todo (o la mayor cantidad posible) del procesamiento de la solicitud ocurra antes de que se ejecute mi código de generación de cookies. es decir, si el usuario inicia sesión, quiero asegurarme de que el proceso de inicio de sesión se haya producido antes de que se ejecute mi código, o si el usuario agrega algo a su carrito, quiero saber que todo el procesamiento del carrito se realiza primero.

¿Hay algún evento que se envíe inmediatamente antes de que se envíe una respuesta al navegador?

Jim OHalloran
fuente

Respuestas:

11

El último evento enviado en Magento 1.x antes de que se muestre el contenido es

controller_front_send_response_after

Si no hay requisitos adicionales en los datos del observador que necesitaría, este debería ser perfecto para usted.

Jernej Golja
fuente
3
En realidad, "controller_front_send_response_before" se parece a lo que necesito. ¡Gracias por señalarme en la dirección correcta!
Jim OHalloran
8

Un truco útil para encontrar eventos activados durante una solicitud / acción de página es editar temporalmente app / Mage.php y escribir los eventos activados en 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;
    }

a

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

y luego seguir el archivo de registro. Encontré este método extremadamente útil y ahorré mucho tiempo buscando ese elusivo evento para usar.

Naturalmente, debe eliminarlo de inmediato, ya que no desea confirmar los archivos principales modificados. Lo envuelvo en la verificación del desarrollador, por si acaso.

ProxiBlue
fuente
2
También puede habilitar el generador de perfiles, que le brinda información extensa de lo que sucede en una carga de página. Todos los eventos activados se repiten allí también.
Rick Kuipers el