<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                `php artisan make:event` 創建一個新的event的class,他會放在app\Events這個目錄,目前這個目錄就Event.php系統的抽象類 `php artisan make:listen` 創建一個監聽者,會放在 `app\Listeners` 這個目錄下面 `php artisan event:generate` 這個命令會循環輸出 `app\Providers\EventServiceProvider.php `文件中下面的數組 ~~~ protected $listen = [ 'App\Events\UserSignup' => [ 'App\Listeners\HandleUserSignup', ], ]; ~~~ 運行一下,創建文件.在事件中要傳遞數據的話可以通過構造方法傳遞 在` App\Events\UserSignup.php `文件中寫 ~~~ use SerializesModels; public $user; /** * Create a new event instance. * * @return void */ public function __construct($user) { //構造方法中寫$user來傳參數,實際中可以傳遞userid或者其他 //注意我們要設置個public $user; $this->user=$user; } ~~~ 這邊event寫完了,他只是傳遞個變量 在`App\Listeners\HandleUserSignup.php`文件中編輯業務處理代碼 ~~~ namespace App\Listeners; use App\Events\UserSignup; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; class HandleUserSignup { public $filesystem; /** * Create the event listener. * * @return void */ public function __construct()//參數Filesystem $filesystem沒寫命名空間注釋掉了 { //形參注入你想要的依賴 //寫個形參依賴注入,寫入到public $filesystem這個變量中 //不要忘記寫public $filesystem // $this->filesystem=$filesystem; } /** * Handle the event. * * @param UserSignup $event * @return void */ public function handle(UserSignup $event) { //處理UserSignup這個事件 //可以用\Mail類來發送郵件,或者干別的事 dump($event->user);//寫event就可以拿到他的user,打印這個user } } ~~~ 路由中寫 ~~~ Route::get('/', function () { $user=\App\User::find(1); //從數據庫取一條記錄傳遞給事件 event(new \App\Events\UserSignup($user)); // return view('welcome'); }); ~~~ 這樣就形成了一個事件,路由中傳遞傳輸給事件,事件構造方法注入到public $user然后監聽者在handle里面就可以拿到這個事件的public $user進行操作! 事件傳遞數據,監聽者處理業務邏輯. 其實監聽器中handle可以放到控制器中,為什么用handle,就是讓我們代碼可伸縮性強 那么事件觸發的標志是什么呢? 是`event(new \App\Events\UserSignup($user));`這個代碼,就觸發了事件 更多用法 打開`App\Events\UserSignup`文件,你可以看到`use Illuminate\Contracts\Broadcasting\ShouldBroadcast; `如果要實現socket進行實施通信,可以 `class UserSignup extends Event implements ShouldBroadcast` 可以將事件廣播到所有客戶端.
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看