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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ![](https://img.kancloud.cn/89/7a/897a2086ee7cd90836e999e2c5b8de50_968x414.jpeg) `ZrWebPHP`應用基于`MVC`(模型-視圖-控制器)的方式來組織。 > MVC是一個設計模式,它強制性的使應用程序的輸入、處理和輸出分開。使用MVC應用程序被分成三個核心部件:模型(M)、視圖(V)、控制器(C),它們各自處理自己的任務。 URL訪問受路由決定,如果關閉嚴格模式,則是基于: > `http://localhost/模塊/控制器/操作/a=1&b=2` 反之開啟了嚴格模式: > 如果首頁有此模塊的入口文件[規定為PHP],就必須通過 http://localhost/入口文件/控制器/操作/a=1&b=2 下面的一些概念有必要做下了解,可能在后面的內容中經常會被提及。 ## 入口文件 用戶請求的PHP文件,負責處理一個請求(注意,不一定是URL請求)的生命周期,最常見的入口文件就是`index.php`,有時候也會為了某些特殊的需求而增加新的入口文件,例如給后臺模塊單獨設置的一個入口文件`admin.php`或者一個控制器程序入口`zrweb`都屬于入口文件。 ## 應用 應用在`ZrWebPHP`中是一個管理系統架構及生命周期的對象,由系統的`\zrweb\App`類完成,應用通常在入口文件中被調用和執行,具有相同的應用目錄(`APP_PATH`)的應用我們認為是同一個應用,但一個應用可能存在多個入口文件。 應用具有自己獨立的配置文件、公共(函數)文件。 ## 模塊 一個典型的應用是由多個模塊組成的,這些模塊通常都是應用目錄下面的一個子目錄,每個模塊都有自己獨立的配置文件、公共文件和類庫文件。 ## 控制器 每個模塊擁有獨立的`MVC`類庫及配置文件,一個模塊下面有多個控制器負責響應請求,而每個控制器其實就是一個獨立的控制器類。 控制器主要負責請求的接收,并調用相關的模型處理,并最終通過視圖輸出。嚴格來說,控制器不應該過多的介入業務邏輯處理。 一個典型的`Index`控制器類如下: ~~~ namespace app\index\controller; class Index { public function index() { return 'hello,Cumin!'; } } ~~~ ## 操作 一個控制器包含多個操作(方法),操作方法是一個URL訪問的最小單元。 下面是一個典型的`Index`控制器的操作方法定義,包含了兩個操作方法: ~~~ namespace app\index\controller; class Index { public function index() { return 'index'; } public function hello($name) { return 'Hello,'.$name; } } ~~~ 操作方法可以不使用任何參數,如果定義了一個非可選參數,則該參數必須通過用戶請求傳入,如果是URL請求,則通常是`$_GET`或者`$_POST`方式傳入。 ## 模型 模型類通常完成實際的業務邏輯和數據封裝,并返回和格式無關的數據。 ## 視圖 控制器調用模型類后返回的數據通過視圖組裝成不同格式的輸出。視圖根據不同的需求,來決定調用模板引擎進行內容解析后輸出還是直接輸出。 視圖通常會有一系列的模板文件對應不同的控制器和操作方法,并且支持動態設置模板目錄。 采用模板引擎:Smarty ## 命名空間 `ZrWebPHP`采用了`PHP`的命名空間進行類庫文件的設計和規劃,并且符合`PSR-4`的自動加載規范。 ## Composer 需要使用 `Composer`,請配置config/config.php文件中的composer數組,并自己引入Composer包,框架提供Composer的json文件,在根目錄自己配置就行了! 不會配置可以看: [如何配置屬于自己的Composer包](http://zrv7.com/post_20.html)
                  <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>

                              哎呀哎呀视频在线观看