本文分析了讓ThinkPHP的模板引擎達到最佳效率的方法。分享給大家供大家參考,具體如下:
默認情況下ThinkPHP框架系統(tǒng)默認使用的模板引擎是內(nèi)置模板引擎。內(nèi)置模板引擎支持模板文件中采用php原生態(tài)代碼和模板標簽的混合使用。
ThinkPHP官方開發(fā)文檔說,這種默認的內(nèi)置模板引擎的性能是高效的,但還不是最佳的。要使模板引擎的性能達到最佳效率,就要使用PHP本身作為模板引擎。
使用PHP本身作為模板引擎其實很簡單,只需在項目的配置文件Conf/config.php上配置:
'TMPL_ENGINE_TYPE' =>'PHP'
采用PHP本身作為模板引擎后,意味著你將不能再使在模板文件上使用系統(tǒng)默認使用的模板引擎的模板標簽,你只能使用原生態(tài)的php代碼。
下面將通過實例來演示一下,采用PHP本身作為模板引擎后,如何在模板上操作php代碼。
下載wblog3.1.2_3博客程序并安裝并安裝(你也可以自建項目)
首先配置項目W3note/Conf/config.php文件添加一項配置項:
<?phpreturn array( ... 'TMPL_ENGINE_TYPE' =>'PHP', ...);?>
然后把控制器/W3note/Lib/Action/IndexAction.class.php和對應(yīng)模板/W3note/Tpl/Index/index.html的代碼清空以待不同的調(diào)試之用。
好了,基礎(chǔ)工作已經(jīng)做好了,接下來是調(diào)試記錄:
1、在模板上使用php原生態(tài)代碼
IndexAction.class.php控制器代碼
<?phpclass IndexAction extends Action { public function index(){  $this->display(); }}index.html模板代碼:
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>使用原生態(tài)的php代碼</title></head><body> <?php $title= '網(wǎng)志博客'; echo $title;//輸出變量 ?></body></html>
輸出:
$title='網(wǎng)志博客'; echo $title;
在模板上把"<?php ?>"換成<php></php>后,結(jié)果無法解釋變量,說明不支持<php></php>標簽。
2、在模板上直接使用查詢語句
控制器代碼同1,模板代碼如下
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>使用原生態(tài)的php代碼</title></head><body> <?php $vo=M('News')->find(); echo $vo['title']; ?></body></html>輸出:
歡迎使用WBlog博客程序
控制器在一邊呆著似乎什么也沒做,模板上竟然可以這樣寫,實在太靈活了!
3、在模板上調(diào)用控制器分配的查詢結(jié)果
IndexAction.class.php控制器代碼
<?php class IndexAction extends Action { public function index(){  $vo=M('News')->find();  $this->assign('vo', $vo);  $this->display(); }}模板index.html代碼
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>使用原生態(tài)的php代碼</title></head><body> <?php echo $vo['title']; ?></body></html>
輸出:
歡迎使用WBlog博客程序
這種情況和系統(tǒng)默認使用的模板引擎時寫法沒什么兩樣。
4、在模板上調(diào)用項目函數(shù)庫的函數(shù)
控制器代碼同1,模板代碼如下
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>使用原生態(tài)的php代碼</title></head><body> <?php echo pwdHash('abc');//調(diào)用項目/W3note/Common/common.php函數(shù)庫的加密函數(shù)pwdHash() ?></body></html>輸出:
af10ef457ed637b91955369297b8e640
擯棄了系統(tǒng)默認模板引擎笨拙(相對來講)的標簽語法,函數(shù)的調(diào)用是如此簡單!
總結(jié):在ThinkPHP中使用PHP本身作為模板引擎,可以使模板引擎的性能達到最佳效率,在模板上需要使用原生態(tài)的php語法,寫法比較活活,但是系統(tǒng)默認模板引擎的模板標簽將失去作用。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
新聞熱點
疑難解答
圖片精選