0

Zend Framework 1.11 内で Symfony EventDispatcher を使用したい (必要がある) zf の Bootstrap に EventDispatcher をロードしています...

public function run()
    {
        require APPLICATION_PATH . 
                '/../library/Symfony/Component/EventDispatcher/EventDispatcher.php';
        $dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();

        $dispatcher->dispatch("bootstrap.prerun", null);

        parent::run();

        $dispatcher->dispatch("bootstrap.postrun", null);

    }

私の質問は、ZFコントローラー内でどのように使用できますか?

助けてくれてありがとう。よろしくお願いします、

4

1 に答える 1

0

私の問題は、モジュールを含むすべての ZF アプリケーションで Symfony の EventDispatcher を動作させることができるように、両方のフレームワークを統合する方法を理解することでした。

これが私の解決策でした:ブートストラップで..

public function run()
{
    $dispatcher = $this->getResource("Far_Resource_EventDispatcher");

    $dispatcher->dispatch("bootstrap.prerun", null);

    $listener = new DM_Service_StockListener();

    $dispatcher->addListener(
            "equipment.new", 
            array($listener, 'onEquipment') 
            );

    parent::run();

    $dispatcher->dispatch("bootstrap.postrun", null);

}

この方法で EventDispatcher をインスタンス化するためのリソースを作成しました。これは、ブートストラップによってグローバルにアクセスでき、リソースを持って開始できます。リソース コードは次のとおりです。

class Far_Resource_EventDispatcher extends Zend_Application_Resource_ResourceAbstract
{
    private $_dispatcher = null;

    public function init()
    {
        if ($this->_dispatcher === null ) {
            require APPLICATION_PATH . 
                '/../library/Symfony/Component/EventDispatcher/EventDispatcher.php';

            $dispatcher = new \Symfony\Component\EventDispatcher\EventDispatcher();
        } else {
            $dispatcher = $this->_dispatcher;
        }
        $this->getBootstrap()->eventDispatcher = $dispatcher;

        return $dispatcher;

    }
}

そして、application.iniでセットアップします

pluginPaths.Far_Resource_EventDispatcher = APPLICATION_PATH "/../library/Far/Resource/EventDispatcher.php"
resources.Far_Resource_EventDispatcher = true;

リソースの作成方法については、次の例を使用しました: http://blog.madarco.net/327/how-to-make-your-own-zend-framework-resource-plugin/

私はまだこれに取り組んでいますが、最初のテストではうまく機能しているようです...

于 2012-05-30T21:27:13.143 に答える