<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 事件訂閱 可以通過事件訂閱機制,在一個監聽器中監聽多個事件,例如通過命令行生成一個事件訂閱者類, ~~~ php think make:subscribe SubscribeUser ~~~ 默認會生成`app\subscribe\SubscribeUser`類。 然后你可以在事件訂閱類中添加不同事件的監聽方法。監聽事件的方法命名規范是`on`+事件標識(駝峰命名)。如果希望自定義訂閱方式(或者方法規范),可以定義`subscribe`方法實現。 ~~~ <?php namespace app\subscribe; use think\Event; class User { public function onUserLogin($user) { // UserLogin事件響應處理 print_r($user); } public function onUserLogout($user) { // UserLogout事件響應處理 print_r($user); } public function subscribe(Event $event) { $event->listen('UserLogin', [$this,'onUserLogin']); $event->listen('UserLogout',[$this,'onUserLogout']); } } ~~~ 然后在事件定義文件注冊事件訂閱者 ~~~ return [ 'bind' => [ // 更多事件綁定 ], 'listen' => [ // 更多事件監聽 ], 'subscribe' => [ 'app\subscribe\User', // 更多事件訂閱 ], ]; ~~~ 最后在控制器中,就可以使用了. ~~~ <?php declare (strict_types = 1); namespace app\test\controller; use think\facade\Event; class User { public function login() { Event::trigger('UserLogin', ['name' => 'pat']); } public function logout() { Event::trigger('UserLogout', ['name' => 'pat']); } } ~~~ ## 分離監聽事件 `php think make:listener UserLogin` ~~~ <?php declare (strict_types = 1); namespace app\listener; class UserLogin { /** * 事件監聽處理 * * @return mixed */ public function handle($user) { print_r($user); } } ~~~ `php think make:listener UserLogout` ~~~ <?php declare (strict_types = 1); namespace app\listener; class UserLogout { /** * 事件監聽處理 * * @return mixed */ public function handle($user) { print_r($user); } } ~~~ 然后在事件定義文件注冊事件訂閱者 ~~~ return [ 'bind' => [ // 更多事件綁定 ], 'listen' => [ // 此處多個傾聽者相當于下方的一個 subscribe, 相當于分文件編碼 'UserLogin' => ['app\listener\UserLogin'], 'UserLogout' => ['app\listener\UserLogout'], // 更多事件監聽 ], 'subscribe' => [ // 'app\subscribe\User', // 更多事件訂閱 ], ]; ~~~
                  <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>

                              哎呀哎呀视频在线观看