<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 功能強大 支持多語言、二開方便! 廣告
                QueryPHP V 4.0 采用命名空間的方式來有效組織項目的代碼,系統在運行過程中會自動注冊部分命名空間,通過自動注冊的命名空間與 autoload 結合起來從而實現高效的文件自動加載。 # 系統注冊命名空間組 為了滿足項目開發需求, QueryPHP 在項目運行過程中會注冊多個系統慣性命名空間,命名空間遵循 **PSR-4** 自動加載規范。 ### 1):框架自身注冊 系統為框架自身所在路徑注冊了一個命名空間,我們在應用中通過如下 Q 頂層命名空間訪問到我們的類。 ~~~ /** * 注冊框架命名空間 */ Q::import ( 'Q', Q_PATH, [ 'ignore' => [ 'resource' ] ] ); ~~~ **例子:** 繼承框架提供的基類控制器 **controller**,實際對應的路徑為 **<project>/lib/queryphp/src/mvc/controller.php** ~~~ class index extend \Q\mvc\controller { } ~~~ ### 2):項目公共文件注冊 系統為項目公共組件所在路徑注冊了一個命名空間,我們在應用中通過如下 com 頂層命名空間訪問到我們的類。 ~~~ // 注冊公共組件命名空間 Q::import ( 'com', $this->com_path, [ 'ignore' => [ 'i18n', 'option', 'theme' ] ] ); ~~~ **例子:** 繼承公共組件提供的基類模型 **base**,實際對應的路徑為 **<project>/com/model/base.php** ~~~ class user extend \com\model\base { } ~~~ ### 3):項目應用文件注冊 系統為應用所在路徑注冊了一個命名空間,我們在應用中通過如下 app_name 頂層命名空間訪問到我們的類。 ~~~ // 注冊命名空間 Q::import ( $this->app_name, $this->app_path . '/' . $this->app_name, [ [ 'i18n', 'option', 'theme' ] ] ); ~~~ **例子:** 繼承 home 提供的基類控制器 **base**,實際對應的路徑為 **<project>/app/home/controller/base.php** ~~~ class blog extend \home\controller\base { } ~~~ # 手動注冊命名空間組 系統通過 Q::import 來導入一個目錄(包括子目錄)所有命名空間,從而實現自動載入自主載入。 ~~~ // 注冊命名空間 Q::import ( 'test', PROJECT_PATH . '/test', [ [ 'not' ] ] ); ~~~ > 提示:我們注冊一個 **項目** 下面的 **test** 命名空間組,這個時候我們可以自由地導入 **test** 里面的類了。 **例子:** 繼承 test 提供的一個 excel 文檔處理類 **phpexcel**,實際對應的路徑為 **<project>/test/phpexcel/excel.php** ~~~ $objExcel = new \test\phpexcel\excel(); ~~~ # 手動注冊單個命名空間 Q::import 也是通過 Q::addNamespace 來導入命名空間的,我們這里也可以通過這個方法注冊命名空間。 ~~~ // 添加命名空間 Q::addNamespace ( 'hello\world', PROJECT_PATH . '/hello/world'); ~~~ > 提示:Q::addNamespace 的第二個參數可以傳入一個數組,同一個命名空間可以支持多個路徑。 **例子:** 繼承 hello\world 提供的一個 word 文檔處理類 **phpword**,實際對應的路徑為 **<project>/hello/world/phpword.php** ~~~ $objWord = new \hello\world\phpword(); ~~~ # 總結 命名空間規范是整個框架基礎,理解好這里有助于掌握整個框架。
                  <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>

                              哎呀哎呀视频在线观看