本文分析了让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(); }}
新闻热点
疑难解答