掌握Thinkphp3 2 0 模版基礎

2022-08-09 04:06:13 字數 4186 閱讀 6286

我們將要學習一下 thinkphp 模版,thinkphp 內建了乙個基於 xml 的效能

卓越的模版引擎 thinktemplate,使用了動態編譯和快取技術,支援自定義標籤庫,

其實我還體會不到其中的強大,慢慢體會吧

一、變數輸出

1.普通變數

控制器提供資料

1

//給模版傳遞乙個變數

2$user = '蠟筆小新';

3$this->assign('user', $user);

模版呼叫

----$前邊不能有空格,否則不能夠正常呼叫

1

//修改預設標籤

2 'tmpl_l_delim'=>'<>',

2.復合變數

傳遞的方式是一樣的,不同的是呼叫的方式 

陣列呼叫方式為:

1 user: email:

2 user: email:

物件呼叫方式為:

1 user: email:

2 user: email:

二、系統變數----php中的內建變數和 thinkphp 的系統變數

1

//輸出php系統變數

2 //

$_server['script_name']

3 //

$_session['admin']

4 //

$_get['user']

5 //

$_post['user']

6 //

$_request['user']

7 //

$_cookie['name']

8//thinkphp的系統變數

目錄10 //

url模式

11 //

語言變數

三、使用函式

能夠使用php中的內建函式或者tp中函式庫中的函式包括自定義的函式,在使用的時候主要是引數的傳遞問題

這裡說一下在tp中如何使用自定義的函式即擴充套件函式庫

thinkphp擴充套件函式的三個方法

1.在common檔案中新建的function.php(不同的版本這個名字可能不一樣,可能是function或common) 並把**寫入該文件 然後在indexaction.php中直接寫函式名

然後在indexaction.php中:

2.臨時性載入:在indexaction.php中使用load(『』);示例:load('@.某函式的檔名'); //只在當前所在的方法中有效 存放函式的.php檔案必須在common目錄下

1 <?php 

2load('@.hanshuu');//呼叫common下名為hanshuu.php的擴充套件函式3?>

3.在配置檔案中載入:config.php中新增:『load_ext_file『 =>'某函式的檔名';

1 <?php 

2returnarray(

3'load_ext_file'=>'function', //function為擴充套件函式所在的php文件名4);

5?>

6 7 然後在indexaction.php中的呼叫**如下

8 9 <?php

10hanshuu();

11?>

注意!:呼叫擴充套件函式的存放檔案時 僅能使用以上3種擴充套件函式的方法中其中一種!否則會因為多次重複引用而出現編譯報錯! 

如果有時,我們需要在模版中使用 php 函式的話,可以按照下面的格式使用:

如果有多個引數要傳遞,可以參考如下設定:

ps:表示 date 函式傳入兩個引數,每個引數用逗號分割,這裡第乙個引數是 y-m-d

h:i:s,第二個引數是前面要輸出的 date 變數,因為該變數是第二個引數,因此需要用###

標識變數位置

前面輸出變數,在後面定義,則不需要###

多個函式用"|"隔開即可

ps:如果你覺得以上寫法需要在腦海裡二次翻譯,太過於麻煩,那麼可以用以下的格

式寫法:

當傳遞過來的變數如果沒有值的時候,模版提供了預設值輸出功能。

四.使用運算子

我們可以在模版中使用運算子,包括對「+」 、 「-」 、 「*」 、 「/」 、 「%」 、 「--」和「++」 的

支援。 //中括號

//函式

ps:在使用運算子的時候,不再支援 . 語法和常規的函式用法:

//錯誤的

//錯誤

模版還支援三元運算子:

五.包含檔案

這個地方主要是路徑的問題

在乙個系統中,可以包含通用的標頭檔案和腳檔案:header 和 footer。由於每個頁面

的頭腳都是相同的,所以需要獨立分離出來,再用包含檔案引入他們。

我們可以在 view 目錄下 default 主題目錄下建立乙個 public 目錄, 這個目錄專門存

放公共呼叫模版檔案。

1

file='public/header' />//注意:沒有字尾

2file='public/footer' />

也可以呼叫絕對路徑模式:

同時呼叫多個模版檔案:

1

file='public/header,public/footer' />

六.模版注釋

模版支援注釋功能,提供個模版製作人員參考。

七. 模版繼承

繼承一般的模版內容,修改特殊的模版內容

1

//基礎模版需要子模版修改的部分可以用包含,並且設定name值

2主要內容3//

子模版只要按同樣的方法,修改內部的值即可完成修改

4修改了5//

建立public下base.tpl模版基頁

6711

12file="public/header" />

13主要內容

14file="public/footer" />

1516

17//

使用匯入模版基頁,name為路徑,和include匯入方法一致

1819

修改了

八.模版布局

1.全域性配置方式

1

//開啟模版布局功能,並指定基礎頁

2 'layout_on'=> true,

3 'layout_name'=>'public/layout', //

layout.tpl 檔案

4//基礎頁,將被子頁面的內容替換

5file="public/header" />67

file="public/footer" />8//

替換變數可以變更為,預設是

9 'tmpl_layout_item' =>'',

10//

子模版不需要載入模版基頁,可以在開頭加上

11

2.模版標籤方式

標籤方式,並不需要在系統做任何配置,和模版繼承類似,直接引入即可。

1

//子模版引入模版基頁23

//替換變數的方法

4

3.layout 控制布局

這個方法是在控制器裡操作的。

1

public n function

index() 4//

引入指定基頁

5 c public n function

index()

九.模版替換

在模版渲染之前, 系統還會對讀取的模版內容進行一些特殊字串替換操作, 也就實現

了模版輸出的替換和過濾。類似於常量

123

45含網域名稱)67

__self__: 會替換成當前的頁面 url

8 __public__:會被替換成當前**的公共目錄 通常是 /public/

掌握Thinkphp3 2 0 標籤庫

1.什麼是內建標籤?什麼是標籤擴充套件庫?cx.class.php 和 html.class.php 2.怎麼載入非內建標籤,怎麼使用?兩種方式載入 3.怎麼擴充套件自定義的標籤?仿照html.class.php寫 仔細回答這3個問題 問題一 think library think template...

掌握Thinkphp3 2 0 自動完成

自動完成,是在create資料的時候自動執行的乙個或多個動作 自動完成也分為動態和靜態兩種 格式 完成規則 array array 完成欄位1,完成規則,完成條件,附加規則 array 完成欄位2,完成規則,完成條件,附加規則 完成字段 必填,需要的欄位名 完成規則 必填,配合附加規則完成 完成條件...

掌握Thinkphp3 2 0 自動驗證

自動驗證是tp在create資料的時候,自動對資料進行驗證。tp提供了兩種驗證方式 靜態驗證 validate屬性 自定義的模型的 和validate 方法 1.靜態驗證 validate屬性 總體的格式 1 2namespace home model 3use think model 4class...