預設情況下ThinkPHP框架系統預設使用的模板引擎是內建模板引擎。內建模板引擎支援模板檔案中採用php原生態程式碼和模板標籤的混合使用。ThinkPHP官方開發文件說,這種預設的內建模板引擎的效能是高效的,但還不是最佳的。要使模板引擎的效能達到最佳效率,就要使用PHP本身作為模板引擎。使用PHP本身作為模板引擎其實很簡單,只需在專案的配置檔案Conf/config.php上配置:'TMPL_ENGINE_TYPE' =>'PHP'採用PHP本身作為模板引擎後,意味著你將不能再使在模板檔案上使用系統預設使用的模板引擎的模板標籤,你只能使用原生態的php程式碼。下面將通過例項來演示一下,採用PHP本身作為模板引擎後,如何在模板上操作php程式碼。下載wblog3.1.2_3部落格程式並安裝並安裝(你也可以自建專案)首先配置專案W3note\Conf\config.php檔案新增一項配置項:
<?php return array( ... 'TMPL_ENGINE_TYPE' =>'PHP', ... ); ?>
然後把控制器\W3note\Lib\Action\IndexAction.class.php和對應模板\W3note\Tpl\Index\index.html的程式碼清空以待不同的除錯之用。好了,基礎工作已經做好了,接下來是除錯記錄:1、在模板上使用php原生態程式碼IndexAction.class.php控制器程式碼<?php class 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>輸出:網誌部落格像原生態的php程式碼一樣,可以在模板上宣告變數並輸出變數,還可以標識程式碼註釋,不過需要注意的是,必須使用php開始標誌"<?php",用"<php>不行嗎,為什麼?接下來你就知道了。2、控制器程式碼同上面,模板程式碼如下<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>使用原生態的php程式碼</title> </head> <body> <php> $title='網誌部落格'; echo $title; </php></body> </html>輸出:$title='網誌部落格'; echo $title;在模板上把"<?php ?>"換成<php></php>後,結果無法解釋變數,說明不支援<php></php>標籤。3、在模板上直接使用查詢語句控制器程式碼同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>
評論(2)