我們將要學習一下 thinkphp 模版,thinkphp 內建了乙個基於 xml 的效能
卓越的模版引擎 thinktemplate,使用了動態編譯和快取技術,支援自定義標籤庫,
其實我還體會不到其中的強大,慢慢體會吧
一、變數輸出
1.普通變數
控制器提供資料
1模版呼叫//給模版傳遞乙個變數
2$user = '蠟筆小新';
3$this->assign('user', $user);
----$前邊不能有空格,否則不能夠正常呼叫
12.復合變數//修改預設標籤
2 'tmpl_l_delim'=>'<>',
傳遞的方式是一樣的,不同的是呼叫的方式
陣列呼叫方式為:
1 user: email:物件呼叫方式為:2 user: email:
1 user: email:二、系統變數----php中的內建變數和 thinkphp 的系統變數2 user: email:
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 <?php3.在配置檔案中載入:config.php中新增:『load_ext_file『 =>'某函式的檔名';2load('@.hanshuu');//呼叫common下名為hanshuu.php的擴充套件函式3?>
1 <?php注意!:呼叫擴充套件函式的存放檔案時 僅能使用以上3種擴充套件函式的方法中其中一種!否則會因為多次重複引用而出現編譯報錯!2returnarray(
3'load_ext_file'=>'function', //function為擴充套件函式所在的php文件名4);
5?>
6 7 然後在indexaction.php中的呼叫**如下
8 9 <?php
10hanshuu();
11?>
如果有時,我們需要在模版中使用 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.全域性配置方式
12.模版標籤方式//開啟模版布局功能,並指定基礎頁
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
標籤方式,並不需要在系統做任何配置,和模版繼承類似,直接引入即可。
13.layout 控制布局//子模版引入模版基頁23
//替換變數的方法
4
這個方法是在控制器裡操作的。
1九.模版替換public n function
index() 4//
引入指定基頁
5 c public n function
index()
在模版渲染之前, 系統還會對讀取的模版內容進行一些特殊字串替換操作, 也就實現
了模版輸出的替換和過濾。類似於常量
12345含網域名稱)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...