Какое последнее событие было отправлено перед отправкой содержимого в браузер?


Мне нужно установить или обновить файл cookie, но я хочу убедиться, что вся (или как можно больше) обработка запроса происходит до запуска моего кода генерации файлов cookie. т.Е. Если пользователь входит в систему, я хочу убедиться, что обработка входа в систему произошла до запуска моего кода, или если пользователь добавляет что-то в свою корзину, я хочу знать, что сначала выполняется вся обработка корзины.

Существуют ли какие-либо события, которые отправляются непосредственно перед отправкой ответа на браузер?

Author: Jim OHalloran, 2013-01-24

2 answers

Последним событием, отправленным в Magento 1.x перед отображением содержимого, является

controller_front_send_response_after

Если в данных наблюдателя нет дополнительных требований, которые вам понадобятся, это должно быть идеально для вас.

 11
Author: Jernej Golja, 2013-01-24 22:40:48

Удобный трюк для поиска событий, запущенных во время запроса/действия страницы, заключается в временном редактировании app/Mage.php и запишите события, запущенные в 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;
    }

, а затем завершите файл журнала. Я нашел этот метод чрезвычайно полезным и сэкономил много времени на поиске этого неуловимого события для использования.

Естественно, вам следует немедленно удалить его, так как вы не хотите фиксировать измененные файлы ядра. Я заворачиваю это в чек разработчика, просто в дело.

 8
Author: ProxiBlue, 2013-01-26 07:03:32