本章的内容主要讲述了如何使用内置的模板引擎。

>[info] ThinkPHP内置了一个基于XML的性能卓越的模板引擎,这是一个专门为ThinkPHP服务的内置模板引擎,使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。

其特点包括:

- 支持XML标签库和普通标签的混合定义;

- 支持直接使用PHP代码书写;

- 支持文件包含;

- 支持多级标签嵌套;

- 支持布局模板功能;

- 一次编译多次运行,编译和运行效率非常高;

- 模板文件和布局模板更新,自动更新模板缓存;

- 系统变量无需赋值直接输出;

- 支持多维数组的快速输出;

- 支持模板变量的默认值;

- 支持页面代码去除Html空白;

- 支持变量组合调节器和格式化功能;

- 允许定义模板禁用函数和禁用PHP语法;

- 通过标签库方式扩展。

每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的PHP文件。

>[info] 由于编译型模板引擎的特性,模板缓存不能关闭,就算关闭缓存也会在每次渲染的时候重新生成模板缓存。

内置的模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的:

| 标签类型 | 描述 |

|-----|-----|

| 普通标签 | 主要用于输出变量、函数过滤和做一些基本的运算操作 |

| XML标签 | 也称为标签库标签,主要完成一些逻辑判断、控制和循环输出,并且可扩展 |

这种方式的结合保证了模板引擎的简洁和强大的有效融合。

模板文件可以同时包含普通标签和标签库标签,标签的定界符都可以重新配置。

## 普通标签

普通标签用于变量输出和模板注释,普通模板标签默认以`{` 和 `}` 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模板标签直接输出。 例如:`{$name}` 、`{$vo.name}` 、`{$vo['name']|strtoupper}` 都属于正确的标签,而`{ $name}` 、`{ $vo.name}`则不属于。

要更改普通标签的起始标签和结束标签,可以更改`template.php`中的配置参数:

~~~

// 普通标签开始标记

'tpl_begin' => '

// 普通标签结束标记

'tpl_end' => '}>'

~~~

普通标签的定界符就被修改了,原来的 `{$name}` 和 `{$vo.name}` 必须使用 `` 和 `` 才能生效了。

>[danger] 本手册后面的内容均使用默认的标签定界符配置进行说明

## 标签库标签

标签库标签可以用于模板变量输出、文件包含、条件控制、循环输出等功能,而且完全可以自己扩展功能。

5.1版本的标签库默认定界符和普通标签一样使用`{`和`}`,是为了便于在编辑器里面编辑不至于报错,当然,你仍然可以更改标签库标签的起始和结束标签,修改下面的配置参数:

~~~

//标签库标签开始标签

'taglib_begin' => '

//标签库标签结束标记

'taglib_end' => '>',

~~~

原来的

~~~html

{eq name="name" value="value"}

相等

{else/}

不相等

{/eq}

~~~

就需要改成

~~~html

相等

不相等

~~~

thinkphp5 模板使用php,模板 · ThinkPHP5.1完全开发手册 · 看云相关推荐

  1. php标签扩展,标签扩展 · ThinkPHP5.0完全开发手册 · 看云

    ## 标签库加载 模板中加载标签库,预加载自定义标签库,扩展内置标签库的加载 请参考:模板/标签库 >[info]建议开发者将自定义标签库请放置应用目录中,请勿放在框架系统目录内,以免使用`Co ...

  2. 多语言php,多语言 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP内置通过`\think\Lang`类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. ## 开启和加载语言包 默 ...

  3. think php上传图片,上传 · ThinkPHP5.0完全开发手册 · 看云

    ## 上传文件 `ThinkPHP5.0`对文件上传的支持更加简单. > 内置的上传只是上传到本地服务器,上传到远程或者第三方平台的话需要自己扩展. 假设表单代码如下: ~~~ ~~~ 然后在控 ...

  4. php控制器的作用,控制器定义 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP V5.0的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的`\think\Controller`类或者其他的控制器类. ## 控制器定义 一个典型的控制器类定义如下 ...

  5. think php5目录结构,目录结构 · ThinkPHP5.1完全开发手册 · 看云

    ## 目录结构 >[info] 相对于`5.0`来说,`5.1`版本目录结构的主要变化是配置目录和路由定义目录独立出来,不再放入应用类库目录(并且不可更改). ~~~cmd www WEB部署目 ...

  6. php 助手函数,助手函数 · ThinkPHP5.1完全开发手册 · 看云

    >[info] 在5.1版本中,大部分的助手函数都可以归结为一个函数`app()`,因为5.1全面采用容器管理类的实例,而`app()`函数又是容器的"管家". ## 助手函 ...

  7. php 实现域名路由器,域名路由 · ThinkPHP5.0完全开发手册 · 看云

    ThinkPHP支持完整域名.子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用. 要启用域名部署路由功能,首先需要开启: ~~~ 'url_domain_deploy' => t ...

  8. php 获取路由参数,路由参数 · ThinkPHP5.0完全开发手册 · 看云

    ## 路由参数 路由参数是指可以设置一些路由匹配的条件参数,主要用于验证当前的路由规则是否有效,主要包括: |参数|说明| |---|---| |method|请求类型检测,支持多个请求类型| |ex ...

  9. php 分布式数据库查询,分布式数据库 · Thinkphp5.0完全开发手册 · 看云

    # 分布式数据库 ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置`database.deploy` 为1 可以采用分布式数据库支持 ...

  10. 比较标签 php,比较标签 · ThinkPHP5.0完全开发手册 · 看云

    比较标签用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下: ~~~ {比较标签 name="变量" value="值 ...

最新文章

  1. Python基本语法_函数_返回值
  2. 立体神经网络模拟连续不完备系统
  3. C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 返回多个值
  4. linux 添加虚拟网卡
  5. MySQL主从复制Linux实现
  6. JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】
  7. 关于学力、同等学力与学历、同等学历的区别
  8. MyEclipse2015Stable2.0安装破解
  9. Leetcode--289. 生命游戏
  10. python编程入门与案例详解-自学Python 编程基础、科学计算及数据分析
  11. 蓝牙音频传输格式:ACC,SBC,APTX和LDAC
  12. GBase 8a - 开启防火墙安装集群添加端口策略
  13. python四位数字加密_python实现字符串加密成纯数字
  14. Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
  15. 根据前序和中序推出后序
  16. 什么是restful?说说你对restful的理解
  17. Tuxera for Mac2022读写硬盘U盘工具
  18. 神经网络知识点总结,神经网络基础与应用
  19. python爬取四川建设行业数据共享平台
  20. delphi源码三层框架【框架简介】

热门文章

  1. Pycharm菜单栏消失,(File 、view消失)快速调出来的方法。(Professional Edition 2022版)
  2. 折腾linux随笔 之 关闭Budgie默认自动隐藏应用的菜单栏 与 Gnome系桌面应用菜单无内容解决...
  3. 每日一淘赋能产品经济全面发展
  4. 程序员的职业规划,程序员的未来趋势
  5. Mysql内容查找替换
  6. 「Wekan」- 看板工具 @20210403
  7. 如何快速找回丢失的数据?
  8. 在Arduino上使用433MHz发送和接收模块
  9. 使用注册表管理桌面新建文件
  10. mysql5.5忘记密码重置方法_mysql5.5忘记密码重置方法