我們來看看TP5的架構(gòu)。
ThinkPHP 5.0基于MVC(模式、視圖、控制器)方式來組織。
TP5的訪問url的PATH_INFO方式:

常用術(shù)語:
一、入口文件(index.php):
1、入口文件是整個(gè)Web應(yīng)用的起點(diǎn);
2、入口文件最常見的就是:index.php;
3、入口文件并不唯一,例如可為后臺單獨(dú)設(shè)置入口:admin.php;
4、入口文件可以通過url重寫功能將其隱藏;
二、應(yīng)用(application):
1、應(yīng)用是URL請求到完成的(生命周期)處理對象,由thinkphp\library\think\App類處理;
2、應(yīng)用必須在入口文件(如index.php)中調(diào)用并執(zhí)行;
3、可以為不同的應(yīng)用創(chuàng)建多個(gè)入口文件,如后臺入口:admin.php;
4、應(yīng)用有自己獨(dú)立的配置文件(config.php)和公共函數(shù)文件(common.php);
三、模塊(module)
1、一個(gè)應(yīng)用下有多個(gè)模塊,對應(yīng)著應(yīng)用的不同部分,如前臺、后臺;
2、每個(gè)模塊都可以有完整的MVC類庫,創(chuàng)建和管理這些類庫是我們最主要的工作;
3、每個(gè)模塊都可以有獨(dú)立的配置文件(config.php)和公共函數(shù)文件(common.php);
4、如果應(yīng)用簡單,可使用單模塊模式,只要設(shè)置thinkphp/convention.php中的:'app_multi_module=>false'即可,此時(shí)應(yīng)用。
四、控制器(controller)
1、每個(gè)模塊下可以有多個(gè)控制器負(fù)責(zé)響應(yīng)URL請求;
2、每個(gè)控制器對應(yīng)一個(gè)控制器類(class),如User.php;
3、控制器管理著模型與視圖,是系統(tǒng)資源的調(diào)度與分配中心;
4、TP5的控制器不需要繼承任何基類就可以工作(舊版本中需要繼承controller類才能工作)。
五、操作(action)
1、操作對應(yīng)著控制器類中的方法,是URL請求的最小單元;
2、任何的URL請求最終都是由控制器中的方法來完成的;
3、操作是整個(gè)應(yīng)用的最終執(zhí)行單元,是URL路由的核心與目標(biāo)。
六、模型(model)
1、模型通常對應(yīng)整個(gè)應(yīng)用,因此模型通常在應(yīng)用(application)目錄下創(chuàng)建;
2、盡管模型主要是針對數(shù)據(jù)庫的CURD操作,但也可以不操作數(shù)據(jù)庫;
3、模型通常是完成實(shí)際的業(yè)務(wù)邏輯和數(shù)據(jù)封裝,并返回和格式無關(guān)的數(shù)據(jù);
4、模型返回的數(shù)據(jù),通常是數(shù)組(array)或者是字符串(string);
5、模型支持分層設(shè)計(jì),例如將模型層分成邏輯層/服務(wù)層/事件層。
七、視圖(view)
1、控制器通過調(diào)用模型返回的數(shù)據(jù),是通過視圖轉(zhuǎn)換成不同格式輸出的;
2、視圖根據(jù)請求,調(diào)用模板引擎確定是直接輸出還是模板解析后再輸出;
3、視圖是由大量的模板文件組成的,這些文件對應(yīng)著不同控制器中的操作方法;
4、模板目錄可以動態(tài)設(shè)置;
5、視圖最直觀的理解,就是由一系列的HTML文件組成。