php框架

 首页 > php框架 > ThinkPHP > ThinkPHP的模板引擎如何才能达到最棒的效率 - Th

ThinkPHP的模板引擎如何才能达到最棒的效率 - Th

分享到:
【字体:
导读:
          默认情况下ThinkPHP框架系统默认使用的模板引擎是内置模板引擎,内置模板引擎支持模板文件中采用php原生态代码和模板标签的混合使用 ThinkPHP官方开发文档说,这种默认的内置模板引擎的...

ThinkPHP的模板引擎如何才能达到最棒的效率

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

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

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

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

下面将通过实例来演示一下,采用PHP本身作为模板引擎后,如何在模板上操作php代码.下载wblog3.1.2_3博客程序并安装并安装(你也可以自建项目)

首先配置项目W3noteConfconfig.php文件添加一项配置项:

  1. return array
  2. ... 
  3. 'TMPL_ENGINE_TYPE' =>'PHP'
  4. ... 
  5. ); 
  6. ?> 

然后把控制器W3noteLibActionIndexAction.class.php和对应模板W3noteTplIndexindex.html的代码清空以待不同的调试之用。

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

1、在模板上使用php原生态代码,IndexAction.class.php控制器代码:

  1. class IndexAction extends Action { 
  2. public function index(){ 
  3. $this->display(); 
  4. ?> 

index.html模板代码:

  1.  
  2.  
  3. "Content-Type" content="text/html;charset=UTF-8"
  4. 使用原生态的php代码 
  5.  
  6.  
  7. $title'www.phpfensi.com'
  8. echo $title;//输出变量 
  9. ?> 
  10.  
  11.  
  12.  
  13. //输出:www.phpfensi.com 

像原生态的php代码一样,可以在模板上声明变量并输出变量,还可以标识代码注释,不过需要注意的是,必须使用php开始标志"不行吗,为什么?接下来你就知道了.

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

  1.  
  2.  
  3. "Content-Type" content="text/html;charset=UTF-8"
  4. 使用原生态的php代码 
  5.  
  6.  
  7.  
  8. $title='www.phpfensi.com'
  9. echo $title
  10.  
  11.  
  12.  
  13. //输出:$title='www.phpfensi.com'; echo $title; 

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

3、在模板上直接使用查询语句,控制器代码同1,模板代码如下:

  1.  
  2.  
  3. "Content-Type" content="text/html;charset=UTF-8"
  4. 使用原生态的php代码 
  5.  
  6.  
  7. $vo=M('News')->find(); 
  8. echo $vo['title']; 
  9. ?> 
  10.  
  11.  
  12. //输出:欢迎使用WBlog博客程序 

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

4、在模板上调用控制器分配的查询结果,IndexAction.class.php控制器代码:

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

模板index.html代码:

  1.  
  2.  
  3. "Content-Type" content="text/html;charset=UTF-8"
  4. 使用原生态的php代码 
  5.  
  6.  
  7. echo $vo['title']; 
  8. ?> 
  9.  
  10.  
  11. //输出:欢迎使用WBlog博客程序 

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

5、在模板上调用项目函数库的函数,控制器代码同1,模板代码如下:

  1.  
  2.  
  3. "Content-Type" content="text/html;charset=UTF-8"
  4. 使用原生态的php代码 
  5.  
  6.  
  7. echo pwdHash('abc');//调用项目W3noteCommoncommon.php函数库的加密函数pwdHash() 
  8. ?> 
  9.  
  10.  
  11. //输出:af10ef457ed637b91955369297b8e640 

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

分享到:
thinkphp 验证码不现实多半是bom惹的祸 -...
thinkphp 验证码不现实多半是bom惹的祸 thinkphp 验证码不现实多半是bom惹的祸,下面是驱除bom的代码:   
ThinkPHP 具体区别M方法和D方法的技巧 - ...
ThinkPHP 具体区别M方法和D方法的技巧 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 M方法: 对数据表进行简单的 CURD 操作而无复杂的业务逻辑时 只有个别的表有较为...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……