如何讓ThinkPHP的模板引擎達到最佳效率的方法介紹

來源:互聯網
上載者:User
這篇文章主要介紹了讓ThinkPHP的模板引擎達到最佳效率的方法,結合執行個體形式較為詳細的分析了thinkPHP模板引擎的使用方法與使用原生態php文法的效率問題,需要的朋友可以參考下

本文分析了讓ThinkPHP的模板引擎達到最佳效率的方法。分享給大家供大家參考,具體如下:

預設情況下ThinkPHP架構系統預設使用的模板引擎是內建模板引擎。內建模板引擎支援模板檔案中採用php原生態代碼和模板標籤的混合使用。

ThinkPHP官方開發文檔說,這種預設的內建模板引擎的效能是高效的,但還不是最佳的。要使模板引擎的效能達到最佳效率,就要使用PHP本身作為模板引擎

使用PHP本身作為模板引擎其實很簡單,只需在項目的設定檔Conf/config.php上配置:

'TMPL_ENGINE_TYPE' =>'PHP'

採用PHP本身作為模板引擎後,意味著你將不能再使在模板檔案上使用系統預設使用的模板引擎的模板標籤,你只能使用原生態的php代碼。

下面將通過執行個體來示範一下,採用PHP本身作為模板引擎後,如何在模板上操作php代碼。

下載wblog3.1.2_3部落格程式並安裝並安裝(你也可以自建項目)

首先設定項目W3note\Conf\config.php檔案添加一項配置項:

<?phpreturn array( ... 'TMPL_ENGINE_TYPE' =>'PHP', ...);?>

然後把控制器\W3note\Lib\Action\IndexAction.class.php和對應模板\W3note\Tpl\Index\index.html的代碼清空以待不同的調試之用。

好了,基礎工作已經做好了,接下來是調試記錄:

1、在模板上使用php原生態代碼

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>使用原生態的php代碼</title></head><body> <?php $title= '網誌部落格'; echo $title;//輸出變數 ?></body></html>

輸出:

$title='網誌部落格'; echo $title;

在模板上把"<?php ?>"換成<php></php>後,結果無法解釋變數,說明不支援<php></php>標籤。

2、在模板上直接使用查詢語句

控制器代碼同1,模板代碼如下

<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>使用原生態的php代碼</title></head><body> <?php $vo=M('News')->find(); echo $vo['title']; ?></body></html>

輸出:

歡迎使用WBlog部落格程式

控制器在一邊獃著似乎什麼也沒做,模板上竟然可以這樣寫,實在太靈活了!

3、在模板上調用控制器分配的查詢結果

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>使用原生態的php代碼</title></head><body> <?php echo $vo['title']; ?></body></html>

輸出:

歡迎使用WBlog部落格程式

這種情況和系統預設使用的模板引擎時寫法沒什麼兩樣。

4、在模板上調用項目函數庫的函數

控制器代碼同1,模板代碼如下

<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>使用原生態的php代碼</title></head><body> <?php echo pwdHash('abc');//調用項目\W3note\Common\common.php函數庫的加密函數pwdHash() ?></body></html>

輸出:

af10ef457ed637b91955369297b8e640

擯棄了系統預設範本引擎笨拙(相對來講)的標籤文法,函數的調用是如此簡單!

總結:在ThinkPHP中使用PHP本身作為模板引擎,可以使模板引擎的效能達到最佳效率,在模板上需要使用原生態的php文法,寫法比較活活,但是系統預設範本引擎的模板標籤將失去作用。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.