如何让ThinkPHP的模板引擎达到最佳效率
来源:互联网 发布:日本娱乐圈黑料 知乎 编辑:程序博客网 时间:2024/05/14 13:53
如何让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文件添加一项配置项:
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语法,写法比较活活,但是系统默认模板引擎的模板标签将失去作用。
- 如何让ThinkPHP的模板引擎达到最佳效率
- thinkphp—关于模板时间的获取(模板引擎是Smarty),该如何操作
- ThinkPHP内置模板引擎的使用方法总结
- Thinkphp修改默认模板引擎为smarty如何操作
- 如何达到最佳的声音从宝马E36音响系统。
- Thinkphp模板引擎(疑问)
- 关于thinkphp模板引擎中变量输入的思考
- 案例分享如何让网站的用户体验达到极致
- 让你的头脑达到顶尖效率的20种方法,你值得拥有!
- 给开发者的 10 款最佳的 JavaScript 模板引擎
- 让你的thinkphp支持嵌套继承模板
- 低表达,高需要:如何达到基于本性的最佳状态?
- magento如何实施正确的缓存策略以达到最佳性能
- 如何选择与相机相匹配的镜头以达到最佳成像性能
- ThinkPHP中的模板引擎和视图层
- ThinkPHP中的模板引擎和视图层
- thinkPHP内置模板引擎TagLibHtml.class.php
- ThinkPHP框架使用Smarty模板引擎
- solr 下载
- Spring XML配置--使用注解装配(@Atutowired、@Inject、@Resource)
- 环境变量配置好了,tomcat启动依然闪退
- KNN 源码
- GitHub上README.md教程
- 如何让ThinkPHP的模板引擎达到最佳效率
- c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别
- Myeclipse破解工具破解方法(二)
- javascript 中的call 和apply
- javascript Object
- Android webView的cookie机制
- Spring之bean
- Cygwin中vi编辑器方向键和Backspace键不好使的解决方法
- 创建表空间