Magento - 加载页面后执行的最后一个事件名称

问题描述 投票:3回答:2

在我的自定义模块中,我在会话变量中设置了一个标志,在controller_action_layout_render_before事件中,检查是否设置了标志然后附加自定义内容。

我想在页面加载后取消设置会话变量中的标志。

怎么做到呢。

当页面加载时,是否有任何事件在最后执行?

events magento observer-pattern
2个回答
5
投票

controller_front_send_response_after

活动应该适合你。暂时添加一些日志记录到app/Mage.php

public static function dispatchEvent($name, array $data = array())
{   
    //Mage::Log($name);                 
    file_put_contents('/tmp/event.log',"$name\n",FILE_APPEND);    

    Varien_Profiler::start('DISPATCH EVENT:'.$name);
    $result = self::app()->dispatchEvent($name, $data);
    #$result = self::registry('events')->dispatch($name, $data);
    Varien_Profiler::stop('DISPATCH EVENT:'.$name);
    return $result;
}

可以为您提供针对特定请求触发的事件列表,这通常足以追踪您正在寻找的事件。


3
投票

我想你只想在一个请求的生命周期中存储一个变量,你可以考虑使用Magento的注册表。基本上,您使用Mage::register('some_variable_name',$variable);插入一个值,并使用Mage::registry('some_variable_name');在同一请求中的其他上下文中检索它

有关更多信息,请参阅@Alan Storm的答案here

© www.soinside.com 2019 - 2024. All rights reserved.