Подтвердить что ты не робот

Безопасное использование событий предварительной настройки Magento

В системе электронной коммерции Magento есть три события, которые запускаются до полной загрузки системы

resource_get_tablename    
core_collection_abstract_load_before
core_collection_abstract_load_after

Эти события также срабатывают после. Magento загрузился.

Какое безопасное и элегантное (а может быть, событие, известное в Mage core team) способ обнаружить , когда Magento полностью загрузился, чтобы вы могли безопасно использовать эти события?

Если вы попытаетесь использовать определенные функции в предварительно загрунтованном состоянии, весь запрос будет 404. лучше всего я придумал (self-link for контекст) до сих пор что-то вроде этого

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
    }

}

но это немного громоздко.

4b9b3361

Ответ 1

Я не думаю, что для этого есть какое-то событие.

Вы можете добавить свои собственные и подать заявку на получение запроса /Magento, чтобы включить хороший.

До тех пор я думаю, что единственный способ - использовать одно из обнаруженных событий и сделать некоторые проверки того, как далеко Magento инициализируется.

Вы пытались получить Mage::app()->getStores()? Это может спасти вас от захвата исключений.