入口文件:index.php
目錄結構:
一、application //應用程序目錄php
config //配置文件目錄css
controllers //控制器目錄ajax
admin //後臺控制器目錄數據庫
home //前臺控制器目錄數組
models //數據庫模型目錄緩存
views //視圖目錄安全
admin
home
二、framework //框架目錄
core //框架核心類
databases //數據庫驅動類
helpers //輔助函數目錄
libraries //類庫目錄
三、public //前臺靜態資源目錄
css
images
js
uploads //文件上傳目錄app
四、index.php //入口文件
控制器:框架
控制器類的命名方式是:控制器名(駝峯法,首字母大寫)+Controller函數
控制器文件的命名方式是:類名+class.php(類文件後綴)
控制器方法:
C()用於設置,獲取以及保存配置參數的方法
M()鏈接表名
U()用於URL的動態生成:只須要寫模塊文件名/控制器/方法
ajaxReturn($data,數據格式):返回AJAX格式的數據
success(‘提示內容’,‘頁面地址’,‘跳轉時間’):當頁面出現錯誤的時候跳轉到上一個頁面;
I(‘變量類型.下標’,獲取失敗返回的數值/字符串,對變量進行過濾;獲取系統輸入變量
I(‘變量類型,變量名/修飾符’);s=>字符串;d=>整型,b=>布爾,a=>數組,f=>浮點
請求類型
IS_POST : 判斷是否以POST方式提交
IS_GET : 判斷是否以GET方式提交
IS_AJAX : 判斷是否以AJAX方式提交
WHERE
$uer = M("數據表名「);/實例化對象
$data=$uer->where()->select()//帶條件的查詢語句
ALIAS
$data = $uer ->alias('a')//設置鏢的別名
FIELD用於查詢
field()//返回須要的字段
ORDER
order(‘字段 排序方法’)//對數據進行排列asc 正常排序desc倒敘
LIMIT 限制結果數量
limit()限制結果數量 也能夠是數量區間
PAGE 分頁
page(‘頁碼,數量條數’)
GROUP
group()分組
JOIN 多表鏈接
完整示例:
$table = M(‘表名’);
$data = $table->field('須要查詢的字段')
->join(表1 on 表2 .字段=表1.字段)
->join(表3 on 表2.字段=表3.字段)
->select();
模板
默認的模板文件定義規則:視圖目錄/[模板主題/]控制器名/操做名+模板後綴
assign方法對模板變量賦值:$this->assign('name',$value);
assign方法必須在display和show方法
以前調用,而且系統只會輸出設定的變量,其它變量不會輸出(系統變量例外),必定程度上保證了變量的安全性。賦值 後,就能夠在模板文件中輸出變量了,若是使用的是內置模板的話,就能夠這樣輸出:
渲染模板調用格式:display('[模板文件]'[,'字符編碼'][,'輸出類型'])
// 不帶任何參數 自動定位當前操做的模板文件 $this->display();
// 指定模板輸出 $this->display('edit');
//表示調用當前控制器下面的edit模板
$this->display('Member:read');
輸出變量
例如,在控制器中咱們給模板變量賦值:
$name = 'ThinkPHP'; $this->assign('name',$name); $this->display();
而後就能夠在模板中使用:
Hello,{$name}!
模板編譯後的結果就是:
Hello,<?php echo($name);?>!
//注意模板標籤的{
和$
之間不能有任何的空格,不然標籤無效。 {$
普通標籤默認開始標記是{
,結束標記是 }
。也能夠經過設置TMPL_L_DELIM
和TMPL_R_DELIM
進行更改。
使用函數:
{$data.name|md5}
多個參數須要調用
{$create_time|date="y-m-d",###}
多個函數之間用「|」分割
函數會按照從左到右的順序依次調用。
三元運算符
{$status?'正常':'錯誤'} {$info['status']?$info['msg']:$info['error']}
注意:三元運算符中暫時不支持點語法。
內置標籤
標籤名 | 做用 | 包含屬性 |
---|---|---|
include | 包含外部模板文件(閉合) | file |
import | 導入資源文件(閉合 包括js css load別名) | file,href,type,value,basepath |
volist | 循環數組數據輸出 | name,id,offset,length,key,mod |
foreach | 數組或對象遍歷輸出 | name,item,key |
for | For循環數據輸出 | name,from,to,before,step |
switch | 分支判斷輸出 | name |
case | 分支判斷輸出(必須和switch配套使用) | value,break |
default | 默認狀況輸出(閉合 必須和switch配套使用) | 無 |
compare | 比較輸出(包括eq neq lt gt egt elt heq nheq等別名) | name,value,type |
range | 範圍判斷輸出(包括in notin between notbetween別名) | name,value,type |
present | 判斷是否賦值 | name |
notpresent | 判斷是否還沒有賦值 | name |
empty | 判斷數據是否爲空 | name |
notempty | 判斷數據是否不爲空 | name |
defined | 判斷常量是否認義 | name |
notdefined | 判斷常量是否未定義 | name |
define | 常量定義(閉合) | name,value |
assign | 變量賦值(閉合) | name,value |
if | 條件判斷輸出 | condition |
elseif | 條件判斷輸出(閉合 必須和if標籤配套使用) | condition |
else | 條件不成立輸出(閉合 可用於其餘標籤) | 無 |
php | 使用php代碼 | 無 |
volist標籤
volist標籤一般用於查詢數據集(select方法)的結果輸出,一般模型的select方法返回的結果是一個二維數組,能夠直接使用volist標籤進行輸出。
<volist name="list" id="vo"> {$vo.id}:{$vo.name}<br/> </volist>
if標籤
<if condition="$id < 5 ">value1 <else /> value2 </if>
模板替換
__ROOT__: 會替換成當前網站的地址(不含域名)
__APP__: 會替換成當前應用的URL地址 (不含域名)
__MODULE__:會替換成當前模塊的URL地址 (不含域名)
__CONTROLLER__(__或者__URL__ 兼容考慮): 會替換成當前控制器的URL地址(不含域名)
__ACTION__:會替換成當前操做的URL地址 (不含域名)
__SELF__: 會替換成當前的頁面URL
__PUBLIC__:會被替換成當前網站的公共目錄 一般是 /Public
調試模式
通常位於入口文件(tp3.2/index.php)中。
// 開啓調試模式
// 關閉調試模式
define('APP_DEBUG', true);
define('APP_DEBUG', false);
優點:
緩存
數據緩存
// 設置緩存 // 緩存數據300秒 // 讀取緩存 // 刪除緩存
S('name',$value); S('name',$value,300); $value = S('name'); S('name',null);
緩存路徑: tp3.2/Application/Runtime/Temp
快速緩存
快速緩存Data數據 快速緩存Data數據,保存到指定的目錄 獲取緩存數據 刪除緩存數據
F('data',$Data); F('data',$Data,TEMP_PATH); $Data = F('data'); F('data',NULL);
緩存路徑: tp3.2/Application/Runtime/Data