【43】WEB安全學習----PHP-ThinkPHP框架2
模板常量替換機制
__MODULE__:表示從域名後面開始一直到分組名結束的路由
__CONTROLLER__:表示從域名後面開始一直到控制器結束的路由
__ACTION__:表示從域名後面開始一直到方法名結束的路由
__PUBLIC__:站點根目錄下的public目錄路由
__SELF__:表示從域名後面開始一直到路由的最後
模板內容獲取
在Thinkphp中,獲取模板內容通過$this->fetch()方法
列印輸出通過dump()方法。
fetch方法和display方法相比,沒有display方法的輸出。
public function test1(){ $str1 = $this->fetch(); dump($str1); }
模板註釋
在ThinkPHP中,模版註釋有兩種方法:註釋內容在輸出裡是沒有的。
行註釋:{//註釋內容}
塊註釋:{/*註釋內容*/}
變數分配(進階)
簡單變數輸出:前面已學習過,{$模板變數名}
一維陣列輸出:中括號形式:{ayyay[key]}、點形式:{array.key}
二維陣列輸出:中括號形式:{ayyay[key][key]}、點形式:{array.key.key}
物件變數輸出:物件在例項化後一般會儲存在一個變數中去,這個變數也可以輸出到模板中去。
{$obj->attr}、{$obj::attr}
系統變數
thinkphp提供了幾個系統級別的變數(超全域性變數在模板中的使用)
- $Think.server
- $Think.get
- $Think.post
- $Think.request
- $Think.cookie
- $Think.session
- $Think.config:獲取thinkphp中所有配置檔案的一個總和
舉例:獲取GET請求中的id,則可以寫成{$Think.get.id}
預設值
當某個變數不存在或為空時,就會預設顯示的字元,預設的字元就是變數的預設值。
語法:{$變數名|default=預設值}
運算子
{$a+$b}、{$a-$b}、{$a*$b}、{$a/$b}、%、++、--等
檔案包含
<include file='需要引入的模板檔案' 引數名=‘引數值’>
模型
什麼是模型:是MVC三大組成部分,作用是負責與資料表的互動(CURD)。
模型的建立:
命名規範:模型名(要求是不帶字首的表名且首字母大寫)+Model關鍵詞+.class.php
模型的例項化:
D方法例項化:
$obj=D(['模型名']);//例項化自己建立的模型(分組/Model目錄中)
M方法例項化:
$obj=M(['不帶字首的表名']);//直接例項化父類模型(thinkphp目錄下的model)
資料庫的配置
資料庫的配置項可以在系統配置檔案找到,將這裡的配置複製到應用級別的配置檔案中。
資料庫的操作
CURD操作:Create、Update、Read、Delete
增加操作:
insert into ==> $model->add()方法
修改操作:
update table => $model->save()方法
查詢操作:
select => $model->select()方法,查詢全部的資訊
select => $model->select(id)方法,查詢指定ID的資訊
select => $model->select('id1,id2,id3....')方法,查詢指定ID集合的資訊
刪除操作:
delete from => $model->delete()方法,不能使用,刪除方法必須要有條件
delete from => $model->delete(id)方法
delete from => $model->delete('id1,id2,id3....')方法
SQL的除錯:
$model->getLastSql()或$model->_sql()。會輸出當前模型最後一條SQL語句
跟蹤資訊:
開啟了Thinkphp跟蹤資訊後,會在頁面右下角顯示一個小圖示:
點選這個小圖示,會彈出如下介面:
兩種模式:
為了方便開發,thinkphp提供了以下兩種模式:預設是生產模式
除錯模式:錯誤資訊比較詳細
生產模式:錯誤資訊比較模糊