php - 安全使用 Magento 的预配置事件

标签 php oop events magento

在 Magento 电子商务系统中,系统完全启动前会触发三个事件

resource_get_tablename    
core_collection_abstract_load_before
core_collection_abstract_load_after

这些事件也会在 Magento 启动后触发。

什么是安全而优雅(也许事件法师核心团队有福了)的方法来检测何时 Magento 已完全启动以便您可以安全地使用这些事件?

如果您尝试在预引导状态下使用某些功能,整个请求将返回 404。best I've come up with (上下文的自链接)到目前为止是这样的

class Packagename_Modulename_Model_Observer
{
    public function observerMethod($observer)
    {
        $is_safe = true;
        try
        {
            $store = Mage::app()->getSafeStore();
        }
        catch(Exception $e)
        {
            $is_safe = false;
        }
        if(!$is_safe)
        {
            return;
        }     

        //if we're still here, we could initialize store object
        //and should be well into router initialization
    }

}

但这有点笨拙。

最佳答案

我认为没有为此量身定做的事件。

您可以添加您自己的并提交拉取请求/Magento 票证以包括一个好的。

在那之前,我认为唯一的方法是使用您发现的事件之一,并检查 Magento 的初始化程度。

您是否尝试获取 Mage::app()->getStores()?这可能会使您免于异常捕获。

关于php - 安全使用 Magento 的预配置事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12627460/

相关文章:

php - 更新脚本随机停止

PHP 面向对象编程 : Creating database class

c# - 如何处理 Gtk# Notebook 小部件中的选项卡选择?

java - Java 中组件的 componentResized 事件,但仅在鼠标释放时执行

android - iOS/Android 是否可以知道用户何时触摸了广告?

php - 如何确保在一个下拉列表中选择的值将更改 Laravel 中另一个下拉列表的值

php - 如果不存在不同的结果,则插入到表中

java - 如何在J2ME中读取和解析PHP对象

oop - 设计原则

oop - python 的 __repr__ 和 __str__ 的 Racket 等价物?