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', ] ];
さて、基本的なイベントとリスナーの登録は完了しましたが、まだクラスは登録されていませんが開発されている場合は、強力な職人を通じて生成しましょう:
php artisan event:generate
これ次のディレクトリ構造情報を見つける方法:
app\ Events\ UserLoginEvent.php ManagerCreateEvent.php Listeners\ ManagerCreateEventListener.php SomeOtherEventListener.php # 比如邮件推送
トリガー
Event::fire(new ManagerCreateEvent($manager)); # or event(new ManagerCreateEvent($manager));
ManagerCreateEvent: __construct ManagerCreateEventListener: handle SomeOtherEventListener: handle
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'); }}
クラスとリッスンメソッドを定義するだけでは不十分です。EventServiceProvider に追加してリスナーを登録する必要があることをシステムに伝える必要があります。
protected $subscribe = [ 'App\Handlers\Events\UserEventHandler', ];
^_^