10

Magento e コマース システムでは、システムが完全にブートストラップされる前に発生する 3 つのイベントがあります。

resource_get_tablename    
core_collection_abstract_load_before
core_collection_abstract_load_after

これらのイベントは、 Magento がブートストラップ した後にも発生します。

これらのイベントを安全に使用できるように Magento が完全にブートストラップされたことを検出する安全でエレガントな (そしてイベント Mage コア チームが祝福した可能性がある) 方法は何ですか?

ブートストラップ前の状態で特定の機能を使用しようとすると、リクエスト全体が 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 チケットを提出し、適切なチケットを含めることができます。

それまでは、見つけたイベントの 1 つを使用して、Magento がどの程度初期化されているかを確認するしかないと思います。

取得しようとしましたMage::app()->getStores()か?これにより、例外をキャッチする必要がなくなります。

于 2012-10-17T22:02:38.653 に答える