<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 功能強大 支持多語言、二開方便! 廣告
                這里簡單介紹一下如何注入事件,thinkphp 框架的鉤子(行為)其實就是一個事件注冊器,以 Auth.php 為例。可以將一些動作解耦出來,這里以 **記住** 的功能為例。 首先封裝一下 **hook** 的調用,app\common.php 文件, 封裝一個 hook function ``` if (!function_exists('hook')) { function hook($tag, $params) { return \think\facade\Hook::listen($tag, $params); } } ``` 因為該行為只是在 **admin** 模塊下使用, 所以在 admin 模塊下創建行為目錄。![](https://box.kancloud.cn/834f39d7269ee2b39c159f885bc88b8a_363x96.png) 如圖建立一個 **LoginRememberBehavior.php**, 內容如下 ```php namespace app\admin\behavior; use think\facade\Cookie; class LoginRememberBehavior { public function run($params) { if ($params['remember_token']) { $params['user']->remember_token = $params['remember_token']; Cookie::forever('remember_token', $params['remember_token']); } $params['user']->login_at = date('Y-m-d h:i:s', time()); $params['user']->login_ip = request()->ip(); $params['user']->save(); } } ``` 好了,鉤子創建好之后還需要在 app\tags.php 注冊。 ``` 'loginRemember' => app\admin\behavior\LoginRememberBehavior::class, ``` 注冊完成之后就可以直接使用了,在 Auth 中使用,找到 **loginRemember** 方法。 ``` protected function loginRemember($user, Request $request) { $params['user'] = $user; $params['remember_token'] = null; if ($request->has('remember')) { $params['remember_token'] = $this->secretRememberToken($user->id, $this->generateRememberToken()); } hook('loginRemember', $params); } ``` 這樣就可以將 **LoginRemember** 功能獨立出去了, 當然這里只是以其中一個功能為例。以后還可以擴展各種各樣的行為,可以降低你項目功能之間耦合。以上就是建立鉤子的以及使用的過程
                  <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>

                              哎呀哎呀视频在线观看