ThinkPHP一款基於MVC架構的PHP開發框架,下面是一些學習總結。
最早的PHP是一種面向過程的腳本語言,后來集成了OOP的特點,開發變得更加方便。MVC架構便是基於OOP的一種代碼管理結構,數據層、控制器層、視圖層三層分開,結構清晰。
只不過,最初接觸的時候感覺有點奇怪,因為web頁面都是一個個獨立的,每一個頁面單獨執行一個頁面的代碼,PHP頁面與頁面之間只有鏈接跳轉的聯系。而TP或者類似的框架都是一個單入口文件,進入任何文件和執行任何操作都必須從單一入口進入。最早難以理解的的地方在於,怎么就一個PHP文件就完成了整個網站的操作。仔細看了下TP的原理,發現整個架構的運作,就在於這個單一的入口文件上面。
比如,把index.php作為網站的入口文件,index.php就好像成為了整個網站應用的大容器,這個大容器進進出出的就是MVC的三層php頁面。也就是說,現在按照不同的功能模塊把PHP划分成三種類型的php文件,進什么文件,輸出什么文件都是index.php通過URL控制實現的。整個網站,在網址上看起來始終都是index.php帶上不同參數的實現,但是不同的參數在變化的時候,index.php內部在不斷的加載不同的控制器文件,執行不同的數據處理,調用輸出不同的頁面模板,進而完成整個網站不同頁面的變換。所以,index.php沒有跳轉,但是每次執行都讓index.php輸出了不同的內容,進而實現整個網站的頁面“跳轉”。index.php成為了實現MVC代碼架構的文件載體。
這讓我想起了做Flash網站時用的Gaia框架,也是MVC架構,只不過TP的路由是由URL實現,而Gaia除了URL以外,還可以通過鼠標右鍵實現數據的驅動,顯示對應的頁面。