¿Qué es el último evento distribuido antes que el contenido se envía al navegador?

magento.stackexchange https://magento.stackexchange.com/questions/176

  •  16-10-2019
  •  | 
  •  

Pregunta

necesito para configurar o actualizar una galleta, pero quiero asegurar que todos (o tanto como sea posible) del procesamiento de solicitudes se produce antes de que mis galletas carreras de generación de código. es decir, si el usuario inicia sesión, quiero asegurar que el proceso de inicio de sesión se ha producido antes de mis carreras de código, o si el usuario añade algo a su carrito quiero saber que todo el procesamiento de la compra se realiza en primer lugar.

¿Existen eventos que se envían inmediatamente antes de una respuesta se envía al navegador?

¿Fue útil?

Solución

El último evento distribuido en Magento 1.x antes que el contenido se hace es

controller_front_send_response_after

Si no hay requisitos adicionales en los datos de observación que usted necesita, éste debe ser perfecto para usted.

Otros consejos

Un truco muy útil, para encontrar eventos disparados durante una solicitud de página / acción, es temporalmente edición app / Mage.php y escribir los eventos disparados a 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 la cola, entonces el archivo de registro. He encontrado este método extremadamente útil, y ahorrado mucho tiempo cazando para ese evento difícil de alcanzar para su uso.

Naturalmente debe eliminarlo inmediatamente, ya que no desea enviar los archivos centrales cambiado. Me envuelvo en el cheque desarrollador, por si acaso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top