- ThinkPHP實戰(zhàn)
- 夏磊
- 895字
- 2020-11-28 18:26:50
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
- 信息可視化的藝術(shù):信息可視化在英國
- React Native Cookbook
- 算法精粹:經(jīng)典計算機科學(xué)問題的Java實現(xiàn)
- Access 2010數(shù)據(jù)庫應(yīng)用技術(shù)(第2版)
- Java實戰(zhàn)(第2版)
- Android移動開發(fā)案例教程:基于Android Studio開發(fā)環(huán)境
- Hands-On Kubernetes on Windows
- Python Projects for Kids
- AutoCAD基礎(chǔ)教程
- C# 7.0本質(zhì)論
- 你必須知道的.NET(第2版)
- Elasticsearch實戰(zhàn)(第2版)
- Python程序員面試算法寶典
- Unity3D高級編程:主程手記
- Scratch 3少兒交互式游戲編程一本通