ホームページ > バックエンド開発 > PHPチュートリアル > イベント シンプルなイベントマネージャー: イベント

イベント シンプルなイベントマネージャー: イベント

WBOY
リリース: 2016-06-23 13:35:53
オリジナル
1279 人が閲覧しました

イベントシンプルなイベントマネージャー。 Leaps/Events イベントは、疎結合アプリケーションの構築に優れた柔軟性を提供し、プログラム コードを変更せずに拡張パッケージがアプリケーションのコア実行プロセスに参加できるようにします。

インストール

"require" : {    "php" : ">=5.4.0",    "leaps/events": "1.0.*"}
ログイン後にコピー

基本的な使い方

このコンポーネントは非常に使いやすいです:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$d->listen(&#39;foo&#39;,function(){    return &#39;hello&#39;;});$response = $d->trigger(&#39;foo&#39;);echo $response;
ログイン後にコピー

イベントをトリガーする

イベントをトリガーするには、トリガーしたいイベントの名前をDispatcherクラスに伝えるだけです:

イベントをトリガーする イベント:

<?php //Create an instance  $d = new \Leaps\Events\Dispatcher();  $response = $d->trigger(&#39;loaded&#39;);
ログイン後にコピー

triggerメソッドの実行結果を変数に代入することに注意してください。このメソッドは、このイベントをリッスンするすべてのリスナーの戻りデータを含む配列を返します。

最初の戻りデータを取得したいだけの場合は、次のようにすることができます:

イベントをトリガーして最初の戻り値を取得します:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$response = $d->trigger(&#39;loaded&#39;);
ログイン後にコピー

注: first メソッドは、次のすべてのリスナーをトリガーします。特定のイベント リスナーを呼び出しますが、最終的には最初のデータのみが返されます。

イベントをトリガーし、イベントリスナーがnull以外のデータを返すまで待ち​​ます:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$response = $d->first(&#39;loaded&#39;);
ログイン後にコピー

注: untilメソッドは、最初のnull以外の戻りデータを取得する前に順番に実行されます すべてのリスナーがリスニングしていますイベント用に。

イベントの監視

誰もイベントを監視していなければ、イベントがあるだけでは意味がありません。以下は、イベントのイベント ハンドラーの登録を示しています:

イベント ハンドラーの登録:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$response = $d->listen(&#39;loaded&#39;function()    {        // I&#39;m executed on the "loaded" event!    });
ログイン後にコピー

このメソッドにクロージャー関数を渡すと、「loaded」イベントがトリガーされるたびに実行されます。

イベントキュー

場合によっては、トリガーする必要があるイベントをすぐにトリガーするのではなく、「キュー」に保存したい場合があります。これには、キュー メソッドとフラッシュ メソッドを使用する必要があります。まず、一意の識別子を持つイベントをイベント キューに登録します:

イベントをイベント キューに登録します:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$response = $d->queue(&#39;loaded&#39;, $user->id, array($user));
ログイン後にコピー

このメソッドは 3 つのパラメーターを受け入れます。最初のパラメータはイベント キューの名前、2 番目のパラメータはイベントの一意の識別子、3 番目のパラメータはイベント クリーナーに渡すために使用される配列です。この配列は有用なデータを保持します。

次に、foo イベントのイベント ハンドラーを登録します:

イベント ハンドラーを登録します:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$response = $d->flusher(&#39;loaded&#39;, function($key, $user)    {        //    });
ログイン後にコピー

フラッシャー メソッドは 2 つのパラメーターを受け入れることに注意してください。 1 つ目はイベント キューに格納されているイベントの一意の識別子で、上の例ではユーザー ID です。2 つ目のパラメータ (その後さらにパラメータが存在する可能性があります) は、このイベントによって伝送されるデータです。

最後に、flush メソッドを呼び出して、キュー内のすべてのイベントを処理のためにイベント プロセッサに渡します:

<?php//Create an instance$d = new \Leaps\Events\Dispatcher();$response = $d->flush(&#39;foo&#39;, function($key, $user)    {        //    });
ログイン後にコピー

プロジェクトのホームページ: http://www.open-open.com/lib/view/ホーム/ 1430106120693

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート