如何让ThinkPHP的模板引擎达到最佳效率

如何让ThinkPHP的模板引擎达到最佳效率

时间:2013-04-28 分类: Thinkphp 浏览:8423
分享到: 0

默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎。内置模板引擎支持模板文件中采用php原生态代码和模板标签的混合使用。


ThinkPHP官方开发文档说,这种默认的内置模板引擎的性能是高效的,但还不是最佳的。要使模板引擎的性能达到最佳效率,就要使用PHP本身作为模板引擎。

使用PHP本身作为模板引擎其实很简单,只需在项目的配置文件Conf/config.php上配置:

'TMPL_ENGINE_TYPE' =>'PHP'


采用PHP本身作为模板引擎后,意味着你将不能再使在模板文件上使用系统默认使用的模板引擎的模板标    签,你只能使用原生态的php代码。

下面将通过实例来演示一下,采用PHP本身作为模板引擎后,如何在模板上操作php代码。


下载wblog3.1.2_3博客程序并安装(你也可以自建项目)

首先配置项目W3note\Conf\config.php文件添加一项配置项:

1 <?php
2 return array(
3     ...
4     'TMPL_ENGINE_TYPE' =>'PHP',
5     ...
6 );
7 ?>

然后把控制器\W3note\Lib\Action\IndexAction.class.php和对应模板\W3note\Tpl\Index\index.html的


代码清空以待不同的调试之用。

好了,基础工作已经做好了,接下来是调试记录:


1、在模板上使用php原生态代码

IndexAction.class.php控制器代码

1 <?php
2 class IndexAction extends Action {
3     public function index(){
4         $this->display();
5     }
6 }

index.html模板代码:

01 <html>
02 <head>
03 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
04 <title>使用原生态的php代码</title>
05 </head>
06 <body>
07   <?php
08     $title'网志博客';
09     echo $title;//输出变量
10   ?>
11 </body>
12 </html>

输出:网志博客


像原生态的php代码一样,可以在模板上声明变量并输出变量,还可以标识代码注释,不过需要注意的是,


必须使用php开始标志"<?php",用"<php>不行吗,为什么?接下来你就知道了。


2、控制器代码同上面,模板代码如下

01 <html>
02     <head>
03     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
04     <title>使用原生态的php代码</title>
05    </head>
06   <body>
07     <php>
08     $title='网志博客';
09     echo $title;
10     </php>
11                                                                                                                                                
12 </body>
13 </html>

输出:$title='网志博客'; echo $title;


在模板上把"<?php ?>"换成<php></php>后,结果无法解释变量,说明不支持<php></php>标签。


3、在模板上直接使用查询语句

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

01 <html>
02 <head>
03 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
04 <title>使用原生态的php代码</title>
05 </head>
06 <body>
07     <?php
08     $vo=M('News')->find();
09     echo $vo['title'];
10     ?>
11                                                                                                                                        
12 </body>
13 </html>

输出:欢迎使用WBlog博客程序


控制器在一边呆着似乎什么也没做,模板上竟然可以这样写,实在太灵活了!


4、在模板上调用控制器分配的查询结果

IndexAction.class.php控制器代码

1 <?php
2 class IndexAction extends Action {
3     public function index(){
4         $vo=M('News')->find();
5         $this->assign('vo'$vo);
6         $this->display();
7     }
8 }

模板index.html代码

01 <html>
02 <head>
03 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
04 <title>使用原生态的php代码</title>
05 </head>
06 <body>
07     <?php
08                                                                                                                      
09     echo $vo['title'];
10     ?>
11                                                                                                                      
12 </body>
13 </html>

输出:欢迎使用WBlog博客程序


这种情况和系统默认使用的模板引擎时写法没什么两样。


5、在模板上调用项目函数库的函数

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

01 <html>
02 <head>
03 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
04 <title>使用原生态的php代码</title>
05 </head>
06 <body>
07     <?php
08     echo pwdHash('abc');//调用项目\W3note\Common\common.php函数库的加密函数pwdHash()
09     ?>
10                                                                                                              
11 </body>
12 </html>

输出:af10ef457ed637b91955369297b8e640


摈弃了系统默认模板引擎笨拙(相对来讲)的标签语法,函数的调用是如此简单!


总结:在ThinkPHP中使用PHP本身作为模板引擎,可以使模板引擎的性能达到最佳效率,在模板上需要使    用原生态的php语法,写法比较活活,但是系统默认模板引擎的模板标签将失去作用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值