ホームページ >バックエンド開発 >PHPチュートリアル >laravel5.1イベント
Laravel イベント
今日は Laravel のイベントドライバーを勉強しましたが、とても便利ですよ〜一緒に楽しみましょう〜
ここでは簡単な使用方法だけを紹介します〜 キュードライバーとブロードキャスト配信については後ほど勉強します。これらは使用されています
特定のイベントをトリガーすると、対応するリスナーがトリガーされます。ハンドルメソッド。ここで、対応するビジネス ロジックをいくつか処理できます。
/** * The event listener mappings for the application. * * @var array */ protected $listen = [ 'App\Events\UserLoginEvent' => [ 'App\Listeners\UserLoginEventListener', ], 'App\Events\ManagerCreateEvent'=>[ 'App\Listeners\ManagerCreateEventListener', 'App\Listeners\SomeOtherEventListener', ] ];上記のコードは、という名前のファイルを登録します。 UserLoginEvent イベントと UserLoginEventListener という名前の UserLoginEvent イベント リスナー、ManagerCreateEvent イベント、および ManagerCreateEvent イベントをリッスンする 2 つのリスナー: ManagerCreateEventListener と SomeOtherEventListener
さて、基本的なイベントとリスナーの登録は完了しましたが、まだクラスは登録されていませんが開発されている場合は、強力な職人を通じて生成しましょう:
php artisan event:generate対応する登録クラスはコマンドを通じて対応するファイルに生成され、イベントは AppEvents ディレクトリに生成され、リスナーは AppListeners に生成されます
これ次のディレクトリ構造情報を見つける方法:
app\ Events\ UserLoginEvent.php ManagerCreateEvent.php Listeners\ ManagerCreateEventListener.php SomeOtherEventListener.php # 比如邮件推送生成されたイベント クラスでは、対応する依存関係を __constrcut コンストラクターに挿入したり、イベント クラスがトリガーされたとき (__constrct の後) に何らかのビジネス処理を実行したりできます。対応するリスナーが順番にハンドル関数をトリガーします
トリガー
Event::fire(new ManagerCreateEvent($manager)); # or event(new ManagerCreateEvent($manager));イベントトリガーの順序は次のとおりです次のように:
ManagerCreateEvent: __construct ManagerCreateEventListener: handle SomeOtherEventListener: handleこのプロセス中にリスニングを終了できます。たとえば、managerCreateEventListener のハンドル メソッドで false を返すと、次の SomeOtherEventListener はリスニング操作をトリガーしなくなります。
Subscribe フォロー/サブスクライブイベント
phpclass UserEventHandler { /** * 处理用户登录事件。 */ public function onUserLogin($event) { // } /** * 处理用户注销事件。 */ public function onUserLogout($event) { // } /** * 注册监听器给订阅者。 * * @param Illuminate\Events\Dispatcher $events * @return array */ public function subscribe($events) { $events->listen('App\Events\UserLoggedIn', 'UserEventHandler@onUserLogin'); $events->listen('App\Events\UserLoggedOut', 'UserEventHandler@onUserLogout'); }}上記のUserEventHandleクラスはリッスンします。 UserLoggedIn と UserLoggedOut という 2 つの異なるイベント クラスは、UserLoggendIn または UserLoggedOut がトリガーされると、対応する listen メソッドを自動的にトリガーします。
クラスとリッスンメソッドを定義するだけでは不十分です。EventServiceProvider に追加してリスナーを登録する必要があることをシステムに伝える必要があります。
protected $subscribe = [ 'App\Handlers\Events\UserEventHandler', ];実行順序では、laravel が最初にイベントリスナーを実行します。 Listen で、subscribe メソッド Listener を実行します
^_^