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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Yaf支持用戶定義插件來擴展Yaf的功能, 這些插件都是一些類. 它們都必須繼承自Yaf_Plugin_Abstract. 插件要發揮功效, 也必須現實的在Yaf中進行注冊, 然后在適當的實際, Yaf就會調用它. ### Yaf支持的Hook | 名稱 | 觸發時機 | 說明 | | -- | -- | -- | | routerStartup | 在路由之前觸發 | 這個是7個事件中, 最早的一個. 但是一些全局自定的工作, 還是應該放在Bootstrap中去完成 | | routerShutdown |路由結束之后觸發 | 此時路由一定正確完成, 否則這個事件不會觸發 | | dispatchLoopStartup |分發循環開始之前被觸發 | | | preDispatch |分發之前觸發 | 如果在一個請求處理過程中, 發生了forward, 則這個事件會被觸發多次 | | postDispatch |分發結束之后觸發 | 此時動作已經執行結束, 視圖也已經渲染完成. 和preDispatch類似, 此事件也可能觸發多次 | | dispatchLoopShutdown | 分發循環結束之后觸發 | 此時表示所有的業務邏輯都已經運行完成, 但是響應還沒有發送 | ### 定義插件 插件類是用戶編寫的, 但是它需要繼承自Yaf_Plugin_Abstract. 對于插件來說, 上一節提到的7個Hook, 它不需要全部關心, 它只需要在插件類中定義和上面事件同名的方法, 那么這個方法就會在該事件觸發的時候被調用. 而插件方法, 可以接受倆個參數, Yaf_Request_Abstract實例和Yaf_Response_Abstract實例. 一個插件類例子如下: plugins/User.php `<?php class UserPlugin extends Yaf_Plugin_Abstract { public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) { } public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) { } }` ### 注冊插件 插件要生效, 還需要向Yaf_Dispatcher注冊, 那么一般的插件的注冊都會放在Bootstra中進行. 一個注冊插件的例子如下: `<?php class Bootstrap extends Yaf_Bootstrap_Abstract{ public function _initPlugin(Yaf_Dispatcher $dispatcher) { $user = new UserPlugin(); $dispatcher->registerPlugin($user); } }` ### 目錄 一般的, 插件應該放置在APPLICATION_PATH下的plugins目錄, 這樣在自動加載的時候, 加載器通過類名, 發現這是個插件類, 就會在這個目錄下查找. 當然, 插件也可以放在任何你想防止的地方, 只要你能把這個類加載進來就可以
                  <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>

                              哎呀哎呀视频在线观看