7

自分のコードベース(カスタムPHPライブラリ)にイベントディスパッチャを組み込む必要があるので、Symfony2Zend Framework 2の両方を見ています。イベントディスパッチャーをPHPライブラリに統合する最適な方法は何ですか?

明らかに、イベントをディスパッチするための共有インターフェースはありません。なぜなら両方のフレームワークが異なるニーズを持ち、独自のコードを実装することに決めたからです...私は少し失われています。

おそらくオブザーバパターンを実装するためのSPLインターフェイスはちょっと古臭いので、私はここであなたに何をしますか?

EDIT

それははっきりしていないので...私は、開発者が自分のライブラリにそれを注入せ、既存のEDを再利用したいと思います。

ディスパッチャを使ってlibを開発し、libがSymfony Bundleの一部であり、ZFプロジェクトで再利用されることを知っていれば、代わりにSymfonyとZFディスパッチャーを再利用したいあなた自身の

したがって、私はメインストリームライブラリに実装されている既存のディスパッチャの共有インタフェースを探していましたが、解決策がないように思えます。

答えて

4

の詳細を知るための記事です。

+0

ラメが、今のところ唯一のオプション:) – odino

+0

@odino Symfony2、ZF2、Aura、Fuel ...と誰か他のPSRとの比較を開始してみませんか...とにかく、受け入れられるかどうかわかりません。基本インターフェースのみが適用されます。 –

2

私はあなたの最初の本能が、広く使われているコンポーネントの1つを選択するといいと思います。

これら2つのオプションは、私が検討しているオプションです。あなたは単に両方を見て、あなたにとって一番うまくいくと思うものを選ぶべきです。

恥知らずのプラグ:本当に軽量のものをお望みなら、Événementをご覧ください。

2

PHPインタフェースSplObserver、SplSubjectを実装することで、オブザーバパターンを実装する必要があります。 Zendだけでなく、Symphonyはフックをサポートするためにそれを行いますが、一般的にすべてのイベントディスパッチャはオブザーバパターンを実装することでこのように動作します。ここで

は、あなたがあなたのニーズのためのインタフェースを定義し、各フレームワークの貴様アダプタとそれを実装できhttp://devzone.zend.com/article/4284

+1

こんにちはOSL、編集を見てみましょう、質問のポイントはどのパターンを使用することではありません、それはあなたがオブザーバーに行くにNEDDことは明らかだ;-) – odino

1

すでに受け入れられている古い投稿ですが、私のようにこれを見ている人にとってPHPのEDPソリューションのドロップの解決策があります。

http://prggmr.org

むしろあなたは、単にイベントのディスパッチを処理するために、典型的なPHPの関数を呼び出し、ライブラリを使用する拡張ノーインターフェイスまたはクラスが自分でないような機能はsymfonyのとZendの実装のそれよりもはるかに異なっています。

// Subscribe to dispatched events 
subscribe(callback, signal) 

// Dispatch an event 
fire(signal) 
関連する問題