ThinkPHP是一個架構:MVC(採用物件導向思想)架構
市面上常用的架構:
zend framework yii thinkPHP
ThinkPHP: 有完善的中文資料,使用相對來說比較多
如何使用這個架構:
模型(M):模型的定義由Model類來完成。Model類位於項目目錄下面的LibModel目錄。V
THINKPHP初始頁面
控制器 (C):應用控制器(核心控制器)和Action控制器都承擔了控制器的角色,區別在於Action控制器完成業務過程,而應用控制器(App類)負責調度控制。Action 控制器 位於項目目錄下面的LibAction目錄。
視圖(V):模板的實現是和架構無關的,做到了100%分離,可以獨立預覽和製作。模板目錄位於項目目錄下面的Tpl目錄。
1,首先下載軟體包
2.0-----3.0之間的檔案變化比較大,3.0之後的變化不是太大
解壓之後產生兩個檔案:ThinkPHP Examples
ThinkPHP是我們需要的核心代碼
Examples 是例子
2,建立入口檔案,在這個入口檔案裡面載入核心代碼,通過載入ThinkPHP.php
3,完成一個控制器
根據TP的目錄結構,完成一個MVC架構
當我們去訪問index.php的時候,會產生項目預設的架構(結構)
我們以後的代碼都在這個結構裡面去寫
分別解釋一下這個結構(架構)
在 Lib 儲存了控制器目錄(Action,和我們之前寫的Controller一樣的) 和 模型目錄(Model)
在Tpl目錄儲存的是視圖層的檔案
Runtime 儲存的是系統產生臨時檔案(緩衝...)
訪問了控制器的動作
這裡訪問的是 預設的控制器的預設的動作
先寫一個控制器:
控制器的寫法:
GoodsAction.class.php
存取控制器的時候,通過 index.php?m=控制器&a=動作
但是由於這種寫法不美觀,而且SEO不友好()
於是TP架構寫了一個pathinfo模式
index.php/控制器/動作
(2)模型層
連結資料庫----通過設定檔來實現的
現在獲得模型,調用模型的方法
TP架構封裝了模型對象,通過M()函數獲得模型,參數是需要操作的表名
但是需要注意:這個表名需要首字母大寫
修改設定檔後,需要刪除一下緩衝
調用select()方法可以獲得所有的記錄,相當於我們之前寫的getAll()
(3)
視圖層顯示資料
assign()
display() 注意:display()可以帶參數也可以不帶參數
如果不帶參數,控制器會自動去
視圖層/模組分組(控制器名)/模板檔案(命名通常是每個動作對應一個模板檔案)
每個控制器在Tpl視圖層都對應一個目錄,
每個動作對應模板檔案
如果是標量資料,在模板裡面通過{變數名}來訪問
如果是數組,在模板檔案需要迴圈遍曆這個數組,通過<foreach ></foreach>
在模板檔案裡面,訪問數組的元素通過 {數組.元素下標} 或者通過 數組[‘下標’]