10

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

resource_get_tablename    
core_collection_abstract_load_before
core_collection_abstract_load_after

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

什么是一种安全且优雅(可能是事件 Mage 核心团队有福)的方法来检测Magento何时完全引导,以便您可以安全地使用这些事件?

如果您尝试在预引导状态下使用某些功能,则整个请求将 404。到目前为止,我想出的最好的(上下文的自链接)是这样的

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
    }

}

但这有点笨拙。

4

1 回答 1

1

我认为没有为此量身定制的活动。

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

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

你试过得到Mage::app()->getStores()吗?这可能会使您免于捕获异常。

于 2012-10-17T22:02:38.653 回答