在Magento电子商务系统中,有三个事件在系统完全自举之前触发
resource_get_tablename
core_collection_abstract_load_before
core_collection_abstract_load_after
这些事件在 Magento引导后也会触发。
什么是安全和优雅(也许事件Mage核心团队祝福)的方式来检测何时 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
}
}
但这有点笨拙。
答案 0 :(得分:1)
我认为没有为此量身定制的事件。
您可以添加自己的并提交拉取请求/ Magento票,以包含一个好的。
在那之前,我认为唯一的方法是使用你找到的一个事件,并对Magento的初始化程度进行一些检查。
您是否尝试获取Mage::app()->getStores()
?这可能会使您免于异常捕获。