让ThinkPHP的模板引擎达到最佳效率的方法详解


Posted in PHP onMarch 14, 2017

本文分析了让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文件添加一项配置项:

<?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>

输出:

$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();
 }
}

模板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博客程序

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

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

控制器代码同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

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

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

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
解决phpmyadmin中文乱码问题。。。
Jan 18 PHP
PHP 日期时间函数的高级应用技巧
Oct 10 PHP
php 安全过滤函数代码
May 07 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
如何用phpmyadmin设置mysql数据库用户的权限
Jan 09 PHP
解析Win7 XAMPP apache无法启动的问题
Jun 26 PHP
php快递单号查询接口使用示例
May 05 PHP
CodeIgniter CLI模式简介
Jun 17 PHP
基于PHP的简单采集数据入库程序【续篇】
Jul 30 PHP
php微信公众平台交互与接口详解
Nov 28 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
基于laravel where的高级使用方法
Oct 10 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 #PHP
Yii2下点击验证码的切换实例代码
Mar 14 #PHP
php分页查询的简单实现代码
Mar 14 #PHP
php实现购物车产品删除功能(2)
Jul 23 #PHP
php实现产品加入购物车功能(1)
Jul 23 #PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
Mar 14 #PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 #PHP
You might like
PHP 简单数组排序实现代码
2009/08/05 PHP
php 函数中使用static的说明
2012/06/01 PHP
浅谈PHP中的数据传输CURL
2016/09/06 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
php实现session共享的实例方法
2019/09/19 PHP
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
js动态移动滚动条至底部示例代码
2014/04/24 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
实例详解带参数的 npm script
2019/05/28 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
代码分析Python地图坐标转换
2018/02/08 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
什么是python的列表推导式
2020/05/26 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
Kate Spade澳大利亚官方网站:美国设计师手袋品牌
2019/09/10 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
android面试问题与答案
2016/12/27 面试题
大学生求职推荐信
2013/11/27 职场文书
入党申请人的自我鉴定
2013/12/01 职场文书
社会实践感言
2014/01/25 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
Python 阶乘详解
2021/10/05 Python