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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## **一、省略事件類的demo** >[info] 確定觸發事件的地方,這里為index控制器index方法 ``` <?php namespace app\admin\controller; use app\BaseController; use think\facade\View; use think\facade\Event; class Index extends BaseController { public function index() { echo "開始位置<br>"; //直接使用事件類觸發 Event::trigger('UserLogin'); echo "<br>結束位置<br>"; } } ``` >[info] 定義model類 ``` <?php namespace app\admin\model; use think\Model; //class User extends Model 模擬數據不希望tp操作數據庫所以不要繼承model class User { //獲取用戶ID為1的用戶信息 public function getUserInfo() { //模擬用戶數據 $user=new \stdClass(); $user->id=2; $user->name="tom"; $user->age=18; $user->login_count=0; return $user; } } ``` >[info] 綁定事件、注冊監聽(admin/event.php定義) >app/admin/event.php ``` <?php // 事件定義文件 return [ 'bind' => [ //綁定事件類 'UserLogin' => '\app\admin\event\UserLogin', ], 'listen' => [ //注冊監聽 'UserLogin' => ['\app\admin\listener\UserLogin'], ], 'subscribe' => [ ], ]; ``` >[info] 定義事件類 > app/admin/event/UserLogin.php ``` <?php namespace app\admin\event; use app\admin\model\User as UserModel; class UserLogin { public $user; public function __construct(UserModel $user) { $this->user = $user; } //給用戶登錄次數+1 public function setLoginCount() { $userInfo = $this->user->getUserInfo(); $userInfo->login_count += 1; return $userInfo; } } ``` >[info] 定義監聽類 >app/admin/listener/UserLogin.php ``` <?php namespace app\admin\listener; use app\admin\event\UserLogin as UserLoginEvent; class UserLogin { /** * 必須實現handle * @param \app\event\UserLogin $userLoginEvent 自定義的事件類 * @return void */ public function handle(UserLoginEvent $userLoginEvent) { $user=$userLoginEvent->user; $userinfo=$user->getUserInfo(); $userinfo->active=true; var_dump($userinfo); echo '<br>'; var_dump($userLoginEvent->setLoginCount()); } } ``` >瀏覽器輸出結果 ``` 開始位置 object(stdClass)#41 (5) { \["id"\]=> int(2) \["name"\]=> string(3) "tom" \["age"\]=> int(18) \["login\_count"\]=> int(0) \["active"\]=> bool(true) } object(stdClass)#40 (4) { \["id"\]=> int(2) \["name"\]=> string(3) "tom" \["age"\]=> int(18) \["login\_count"\]=> int(1) } 結束位置 ``` >完結撒花 ## **二、動態監聽demo** >[info] 確定觸發事件的地方,這里為index控制器index方法 ``` <?php namespace app\admin\controller; use app\BaseController; use think\facade\View; use think\facade\Event; class Index extends BaseController { public function index() { echo "開始位置<br>"; //動態綁定 這個不綁定也可以,明明有事件類的呀不知什么情況 Event::bind(['UserLogin' => 'app\admin\event\UserLogin']); //手動注冊監聽 Event::listen('UserLogin', 'app\admin\listener\UserLogin'); //直接使用事件類觸發 Event::trigger('UserLogin'); echo "<br>結束位置<br>"; } } ``` >[info] 定義model類 ``` <?php namespace app\admin\model; use think\Model; //class User extends Model 模擬數據不希望tp操作數據庫所以不要繼承model class User { //獲取用戶ID為1的用戶信息 public function getUserInfo() { //模擬用戶數據 $user=new \stdClass(); $user->id=2; $user->name="tom"; $user->age=18; $user->login_count=0; return $user; } } ``` >[info] 定義事件類 > app/admin/event/UserLogin.php ``` <?php namespace app\admin\event; use app\admin\model\User as UserModel; class UserLogin { public $user; public function __construct(UserModel $user) { $this->user = $user; } //給用戶登錄次數+1 public function setLoginCount() { $userInfo = $this->user->getUserInfo(); $userInfo->login_count += 1; return $userInfo; } } ``` >[info] 定義監聽類 >app/admin/listener/UserLogin.php ``` <?php namespace app\admin\listener; use app\admin\event\UserLogin as UserLoginEvent; class UserLogin { /** * 必須實現handle * @param \app\event\UserLogin $userLoginEvent 自定義的事件類 * @return void */ public function handle(UserLoginEvent $userLoginEvent) { $user=$userLoginEvent->user; $userinfo=$user->getUserInfo(); $userinfo->active=true; var_dump($userinfo); echo '<br>'; var_dump($userLoginEvent->setLoginCount()); } } ``` >瀏覽器輸出結果同上
                  <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>

                              哎呀哎呀视频在线观看