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

作者:chinalorin 时间:2023-11-14 17:06:40 

本文分析了让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程序设计有所帮助。

标签:ThinkPHP,模板引擎
0
投稿

猜你喜欢

  • 完美解决Pycharm中matplotlib画图中文乱码问题

    2021-11-01 00:25:35
  • mysql定时自动备份数据库的方法步骤

    2024-01-15 10:01:19
  • Python使用Flask框架同时上传多个文件的方法

    2023-02-02 10:16:49
  • VSCode的使用配置以及VSCode插件的安装教程详解

    2023-05-31 14:48:46
  • centos上安装mysql并设置远程访问的操作方法

    2024-01-14 15:24:28
  • babel的使用及安装配置教程

    2024-04-19 10:26:11
  • python合并已经存在的sheet数据到新sheet的方法

    2023-07-25 18:05:51
  • Python写的Tkinter程序屏幕居中方法

    2022-08-03 17:53:07
  • 一步步教你用python给女朋友写个微信自动提醒的程序

    2022-09-03 16:50:25
  • Python实现的读取文件内容并写入其他文件操作示例

    2021-10-11 02:27:02
  • Springboot如何同时装配两个相同类型数据库

    2024-01-25 08:51:33
  • python Windows最新版本安装教程

    2023-02-25 21:09:52
  • JS与jQ读取xml文件的方法

    2024-04-19 10:13:22
  • 详解Python开发语言中的基本数据类型

    2022-12-11 20:13:35
  • python中leastsq函数的使用方法

    2023-11-11 06:03:28
  • Oracle 10g各个帐号的访问权限、登录路径、监控状态命令查询等等

    2024-01-24 22:46:05
  • python抢购软件/插件/脚本附完整源码

    2021-04-25 22:03:17
  • javascript面向对象技术基础(二)

    2010-02-07 13:09:00
  • vue使用echarts时created里拿到的数据无法渲染的解决

    2024-04-30 10:22:33
  • 设计MySQL数据库的技巧

    2009-09-06 11:56:00
  • asp之家 网络编程 m.aspxhome.com