官术网_书友最值得收藏!

1.5 應(yīng)用結(jié)構(gòu)說明

1.5.1 目錄說明

一個典型的ThinkPHP應(yīng)用目錄結(jié)構(gòu)如下:

      ├─index.php       入口文件
      ├─README.md       README文件
      ├─Application     應(yīng)用目錄
      ├─Public          資源文件目錄
      └─ThinkPHP        框架目錄

其中應(yīng)用目錄Application的結(jié)構(gòu)如下:

      ├─Common          公用模塊
      ├─Common      公用函數(shù)目錄(如自定義函數(shù)庫)
      ├─Conf    公用配置目錄(如數(shù)據(jù)庫配置)
      ├─Home        Home模塊目錄(默認模塊)
      ├─Common      Home模塊函數(shù)目錄(模塊函數(shù)庫只在本模塊有效)
      ├─Conf        Home模塊配置目錄(如Home模塊使用其他數(shù)據(jù)庫)
      ├─Controller  Home模塊控制器目錄
      ├─Model       Home模塊模型目錄
      ├─View        Home模塊視圖目錄
      ……其他模塊
      └─Runtime         運行時目錄

1.5.2 入口文件

幾乎所有的PHP MVC框架都會采用單一入口(網(wǎng)站的所有訪問都會經(jīng)過該文件)進行項目訪問,ThinkPHP也不例外。

入口文件主要完成以下事情:

● 定義框架路徑、項目路徑。

● 定義調(diào)試模式和應(yīng)用模式(可選)。

● 定義全局常量(可選)。

● 加載框架入口文件。

1.5.3 自動生成

細心的讀者可能會發(fā)現(xiàn),下載的thinkphp_3.2.3_full.zip解壓后Application目錄是空的,而訪問www.test.com之后會發(fā)現(xiàn)該目錄下面多出了Common、Home、Runtime目錄。這其實是ThinkPHP自動生成的,目的是為了簡化開發(fā)工作,規(guī)范項目結(jié)構(gòu)。而每個目錄下都有一個index.html文件,打開這個文件后發(fā)現(xiàn)只有一個空格,這又是做什么的呢?這也是ThinkPHP為我們做的,目的是為了安全,因為有些Web服務(wù)器可能沒有關(guān)閉目錄訪問,如果一個目錄中沒有默認首頁(瀏覽器地址欄未指定訪問文件時,服務(wù)器自動訪問的文件,一般為index.php、index.html)時,整個目錄會顯示在瀏覽器窗口中,有害網(wǎng)站安全。

1.5.4 模塊

ThinkPHP3.2采用模塊化的設(shè)計,每個模塊之間相對獨立,每個模塊可以很方便地卸載和部署。默認模塊為Home模塊,如果想添加其他模塊,比如后臺模塊,則在Home目錄同級建立Admin目錄即可。一個典型的模塊目錄如下:

      ├─Common      模塊函數(shù)目錄
      ├─Conf    模塊配置目錄
      ├─Controller模塊控制器目錄
      ├─Model       模塊模型目錄
      ├─View        模塊視圖目錄

1.5.5 控制器

當(dāng)我們訪問www.test.com時,瀏覽器怎么會顯示出“歡迎使用ThinkPHP! ”字樣呢?簡要地分析一下執(zhí)行流程:

步驟01

Web服務(wù)器加載默認首頁。

步驟02

ndex.php加載ThinkPHP.php,框架開始運行。

步驟03

由于未指定模塊、控制器和動作,框架采用默認配置:Home模塊、Index控制器、index動作。

步驟04

根據(jù)APP_PATH找到Application目錄,再根據(jù)模塊名、控制器名和動作名找到Home目錄下的IndexController.class.php,并執(zhí)行其中的index方法,我們可以打開文件查看一下代碼,代碼如圖1-9所示。

圖1-9

主站蜘蛛池模板: 隆子县| 邵武市| 柳州市| 黎川县| 屯昌县| 绿春县| 泾川县| 中山市| 临湘市| 阳朔县| 宁德市| 临汾市| 新蔡县| 天气| 乐都县| 康乐县| 揭西县| 三明市| 大安市| 宽城| 泾阳县| 潍坊市| 中阳县| 昭通市| 揭东县| 望谟县| 吉水县| 玉树县| 平果县| 大兴区| 什邡市| 务川| 龙南县| 防城港市| 苏尼特右旗| 荔波县| 潞城市| 长岭县| 金华市| 汕尾市| 永清县|