在 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/