1. 程式人生 > >【43】WEB安全學習----PHP-ThinkPHP框架2

【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提供了以下兩種模式:預設是生產模式

除錯模式:錯誤資訊比較詳細

生產模式:錯誤資訊比較模糊