ThinkPHP的模板引擎如何才能达到最棒的效率
发布:smiling 来源: PHP粉丝网 添加日期:2014-04-11 14:46:36 浏览: 评论: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文件添加一项配置项:
- <?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= 'www.phpfensi.com';
- echo $title;//输出变量
- ?>
- </body>
- </html>
- //输出:www.phpfensi.com
像原生态的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='www.phpfensi.com';
- echo $title;
- </php>
- </body>
- </html>
- //输出:$title='www.phpfensi.com'; 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>
- //输出:欢迎使用WBlog博客程序
控制器在一边呆着似乎什么也没做,模板上竟然可以这样写,实在太灵活了!
4、在模板上调用控制器分配的查询结果,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博客程序
这种情况和系统默认使用的模板引擎时写法没什么两样.
5、在模板上调用项目函数库的函数,控制器代码同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
摈弃了系统默认模板引擎笨拙(相对来讲)的标签语法,函数的调用是如此简单.
Tags: ThinkPHP 效率 模板 引擎
相关文章
- ·ThinkPHP中自定义错误页面和提示页面 (2013-11-15)
- ·ThinkPHP中Ajax返回(2013-11-15)
- ·ThinkPHP中处理表单中注意(2013-11-15)
- ·ThinkPHP中I(),U(),$this->post()等函数(2013-11-15)
- ·ThinkPHP中公共函数路径和配置项路径的映射(2013-11-15)
- ·ThinkPHP中公共配置文件和各自项目中的配置文件组合(2013-11-15)
- ·ThinkPHP在控制器里的javascript代码不能执行解决方法(2013-11-29)
- ·ThinkPHP3.0略缩图不能保存到子目录(2013-12-03)
- ·thinkphp的循环结构(2014-01-10)
- ·thinkphp特殊标签使用(2014-01-10)
- ·thinkphp模板输出汇总(2014-01-10)
- ·thinkphp模板的赋值与替换(2014-01-10)
- ·thinkphp连贯操作(2014-01-10)
- ·thinkphp区间查询、统计查询、SQL直接查询(2014-01-10)
- ·thinkphp的普通查询与表达式查询(2014-01-10)
- ·RBAC类在ThinkPHP中的四种使用方法(2014-01-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)