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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                一個完整的ThinkPHP應用基于**模塊/控制器/操作**設計,并且,如果有需要的話,可以支持多入口文件和多級控制器。 ThinkPHP新版采用模塊化的架構設計思想,對目錄結構規范做了調整,可以支持多模塊應用的創建,讓應用的擴展更加方便。 一個典型的URL訪問規則是(我們以默認的PATHINFO模式為例說明,當然也可以支持普通的URL模式): ~~~ http://serverName/index.php(或者其他應用入口文件)/模塊/控制器/操作/[參數名/參數值...] ~~~ ThinkPHP的應用可以支持切換到命令行訪問,如果切換到命令行模式下面的訪問規則是: ~~~ >php.exe index.php(或其它應用入口文件) 模塊/控制器/操作/[參數名/參數值...] ~~~ 解釋下其中的幾個概念: | 名稱 | 描述 | |-----|-----| | 應用 | 基于同一個入口文件訪問的項目我們稱之為一個應用。 | | 模塊 | 一個應用下面可以包含多個模塊,每個模塊在應用目錄下面都是一個獨立的子目錄。 | | 控制器 | 每個模塊可以包含多個控制器,一個控制器通常體現為一個控制器類。 | | 操作 | 每個控制器類可以包含多個操作方法,也可能是綁定的某個操作類,每個操作是URL訪問的最小單元。 | > 模塊化設計的思想下面模塊是最重要的部分,模塊其實是一個包含配置文件、函數文件和MVC文件(目錄)的集合。 ## 模塊設計 新版采用模塊化的設計架構,下面是一個應用目錄下面的模塊目錄結構,每個模塊可以方便的卸載和部署,并且支持公共模塊。 ~~~ Application 默認應用目錄(可以設置) ├─Common 公共模塊(不能直接訪問) ├─Home 前臺模塊 ├─Admin 后臺模塊 ├─... 其他更多模塊 ├─Runtime 默認運行時目錄(可以設置) ~~~ > 默認情況下,只要應用目錄下面存在模塊目錄,該模塊就可以訪問,只有當你希望禁止某些模塊或者僅允許模塊訪問的時候才需要進行模塊列表的相關設置。 每個模塊是相對獨立的,其目錄結構如下: ~~~ ├─Module 模塊目錄 │ ├─Conf 配置文件目錄 │ ├─Common 公共函數目錄 │ ├─Controller 控制器目錄 │ ├─Model 模型目錄 │ ├─Logic 邏輯目錄(可選) │ ├─Service Service目錄(可選) │ ... 更多分層目錄可選 │ └─View 視圖目錄 ~~~ > 由于采用多層的MVC機制,除了Conf和Common目錄外,每個模塊下面的目錄結構可以根據需要靈活設置和添加,所以并不拘泥于上面展現的目錄 ## 公共模塊 Common模塊是一個特殊的模塊,是應用的公共模塊,訪問所有的模塊之前都會首先加載公共模塊下面的配置文件(`Conf/config.php`)和公共函數文件(`Common/function.php`)。但**Common模塊本身不能通過URL直接訪問**,公共模塊的其他文件則可以被其他模塊繼承或者調用。 公共模塊的位置可以通過**COMMON_PATH**常量改變,我們可以在入口文件中重新定義**COMMON_PATH**如下: ~~~ define('COMMON_PATH','./Common/'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php'; ~~~ 其應用目錄結構變成: ~~~ www WEB部署目錄(或者子目錄) ├─index.php 入口文件 ├─README.md README文件 ├─Common 應用公共模塊目錄 ├─Application 應用模塊目錄 ├─Public 應用資源文件目錄 └─ThinkPHP 框架目錄 ~~~ > 定義之后,Application目錄下面就不再需要Common目錄了。 ## 自動生成模塊目錄 可以支持自動生成默認模塊之外的模塊目錄以及批量生成控制器和模型類。 例如,如果我們需要生成一個Admin模塊用于后臺應用,在應用入口文件中定義如下: ~~~ // 綁定Admin模塊到當前入口文件 define('BIND_MODULE','Admin'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php'; ~~~ 然后訪問URL地址 ~~~ http://serverName/index.php ~~~ 就會生成Admin模塊的目錄,并生成一個默認的控制器類`Admin\Controller\IndexController`。 如果需要生成更多的控制器類,可以定義`BUILD_CONTROLLER_LIST`常量,例如: ~~~ // 綁定Admin模塊到當前入口文件 define('BIND_MODULE','Admin'); define('BUILD_CONTROLLER_LIST','Index,User,Menu'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php'; ~~~ 訪問后會自動生成三個指定的控制器類: ~~~ Admin\Controller\IndexController Admin\Controller\UserController Admin\Controller\MenuController ~~~ > 注意:默認生成的控制器類都是繼承`Think\Controller`,如果需要繼承其他的公共類需要另外調整。 如果在應用的公共配置文件中設置關閉了 `APP_USE_NAMESPACE`的話,生成的控制器類則不會采用命名空間定義。 同樣,也可以定義`BUILD_MODEL_LIST`支持生成多個模型類: ~~~ // 綁定Admin模塊到當前入口文件 define('BIND_MODULE','Admin'); define('BUILD_MODEL_LIST','User,Menu'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php'; ~~~ 訪問會自動生成模型類: ~~~ Admin\Model\UserModel Admin\Model\MenuModel ~~~ > 注意:默認生成的模型類都是繼承`Think\Model`,如果需要繼承公共的模型類需要另外調整。 如果在應用的公共配置文件中設置關閉了 `APP_USE_NAMESPACE`的話,生成的模型類則不會采用命名空間定義。 還可以自己手動調用`Think\Build`類的方法來生成控制器類和模型類,例如: ~~~ // 生成Admin模塊的Role控制器類 // 默認類庫為Admin\Controller\RoleController // 如果已經存在則不會重新生成 \Think\Build::buildController('Admin','Role'); // 生成Admin模塊的Role模型類 // 默認類庫為Admin\Model\RoleModel // 如果已經存在則不會重新生成 \Think\Build::buildModel('Admin','Role'); ~~~ 更多的方法可以參考Think\Build類庫。 ## 禁止訪問模塊 ThinkPHP對模塊的訪問是自動判斷的,所以通常情況下無需配置模塊列表即可訪問,但可以配置禁止訪問的模塊列表(用于被其他模塊調用或者不開放訪問),默認配置中是禁止訪問`Common`模塊和`Runtime`模塊(Runtime目錄是默認的運行時目錄),我們可以增加其他的禁止訪問模塊列表: ~~~ // 設置禁止訪問的模塊列表 'MODULE_DENY_LIST' => array('Common','Runtime','Api'), ~~~ 設置后,Api模塊不能通過URL直接訪問,事實上,可能我們只是在該模塊下面放置一些公共的接口文件,因此都是內部調用即可。 ## 設置訪問列表 如果你的應用下面模塊比較少,還可以設置允許訪問列表和默認模塊,這樣可以簡化默認模塊的URL訪問。 ~~~ 'MODULE_ALLOW_LIST' => array('Home','Admin','User'), 'DEFAULT_MODULE' => 'Home', ~~~ 設置之后,除了Home、Admin和User模塊之外的模塊都不能被直接訪問,并且Home模塊是默認訪問模塊(可以不出現在URL地址)。 ## 單模塊設計 如果你的應用夠簡單,那么也許僅僅用一個模塊就可以完成,那么可以直接設置: ~~~ // 關閉多模塊訪問 'MULTI_MODULE' => false, 'DEFAULT_MODULE' => 'Home', ~~~ 一旦關閉多模塊訪問后,就只能訪問默認模塊(這里設置的是Home)。 > 單模塊設計后公共模塊依然有效 ## 多入口設計 可以給相同的應用及模塊設置多個入口,不同的入口文件可以設置不同的應用模式或者綁定模塊。 例如,我們在`index.php`文件的同級目錄新增一個`admin.php`入口文件,并綁定Admin模塊: ~~~ // 綁定Home模塊到當前入口文件 define('BIND_MODULE','Admin'); define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php'; ~~~ > 如果你更改了系統默認的變量設置,則需要做對應的模塊綁定的變量調整。 綁定模塊后,原來的訪問地址 ~~~ http://serverName/index.php/Admin/Index/index ~~~ 就變成 ~~~ http://serverName/admin.php/Index/index ~~~ 同樣的方式,我們也可以在入口文件中綁定控制器,例如: ~~~ define('BIND_MODULE', 'Home'); // 綁定Home模塊到當前入口文件 define('BIND_CONTROLLER','Index'); // 綁定Index控制器到當前入口文件 define('APP_PATH','./Application/'); require './ThinkPHP/ThinkPHP.php'; ~~~ 綁定模塊和控制器后,原來的訪問地址: ~~~ http://serverName/index.php/Home/Index/index ~~~ 就變成: ~~~ http://serverName/home.php/index ~~~ > 不同的入口文件還可以用于綁定不同的應用模式,參考[應用模式](1702)部分。
                  <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>

                              哎呀哎呀视频在线观看