thinkphp5 模板使用php,模板 · ThinkPHP5.1完全开发手册 · 看云
本章的内容主要讲述了如何使用内置的模板引擎。
>[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完全开发手册 · 看云相关推荐
- php标签扩展,标签扩展 · ThinkPHP5.0完全开发手册 · 看云
## 标签库加载 模板中加载标签库,预加载自定义标签库,扩展内置标签库的加载 请参考:模板/标签库 >[info]建议开发者将自定义标签库请放置应用目录中,请勿放在框架系统目录内,以免使用`Co ...
- 多语言php,多语言 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP内置通过`\think\Lang`类提供多语言支持,如果你的应用涉及到国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. ## 开启和加载语言包 默 ...
- think php上传图片,上传 · ThinkPHP5.0完全开发手册 · 看云
## 上传文件 `ThinkPHP5.0`对文件上传的支持更加简单. > 内置的上传只是上传到本地服务器,上传到远程或者第三方平台的话需要自己扩展. 假设表单代码如下: ~~~ ~~~ 然后在控 ...
- php控制器的作用,控制器定义 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP V5.0的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的`\think\Controller`类或者其他的控制器类. ## 控制器定义 一个典型的控制器类定义如下 ...
- think php5目录结构,目录结构 · ThinkPHP5.1完全开发手册 · 看云
## 目录结构 >[info] 相对于`5.0`来说,`5.1`版本目录结构的主要变化是配置目录和路由定义目录独立出来,不再放入应用类库目录(并且不可更改). ~~~cmd www WEB部署目 ...
- php 助手函数,助手函数 · ThinkPHP5.1完全开发手册 · 看云
>[info] 在5.1版本中,大部分的助手函数都可以归结为一个函数`app()`,因为5.1全面采用容器管理类的实例,而`app()`函数又是容器的"管家". ## 助手函 ...
- php 实现域名路由器,域名路由 · ThinkPHP5.0完全开发手册 · 看云
ThinkPHP支持完整域名.子域名和IP部署的路由和绑定功能,同时还可以起到简化URL的作用. 要启用域名部署路由功能,首先需要开启: ~~~ 'url_domain_deploy' => t ...
- php 获取路由参数,路由参数 · ThinkPHP5.0完全开发手册 · 看云
## 路由参数 路由参数是指可以设置一些路由匹配的条件参数,主要用于验证当前的路由规则是否有效,主要包括: |参数|说明| |---|---| |method|请求类型检测,支持多个请求类型| |ex ...
- php 分布式数据库查询,分布式数据库 · Thinkphp5.0完全开发手册 · 看云
# 分布式数据库 ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型. 配置`database.deploy` 为1 可以采用分布式数据库支持 ...
- 比较标签 php,比较标签 · ThinkPHP5.0完全开发手册 · 看云
比较标签用于简单的变量比较,复杂的判断条件可以用if标签替换,比较标签是一组标签的集合,基本上用法都一致,如下: ~~~ {比较标签 name="变量" value="值 ...
最新文章
- Python基本语法_函数_返回值
- 立体神经网络模拟连续不完备系统
- C++ Primer 5th笔记(chap 17 标准库特殊设施)tuple 返回多个值
- linux 添加虚拟网卡
- MySQL主从复制Linux实现
- JDBC学习笔记01【JDBC快速入门、JDBC各个类详解、JDBC之CRUD练习】
- 关于学力、同等学力与学历、同等学历的区别
- MyEclipse2015Stable2.0安装破解
- Leetcode--289. 生命游戏
- python编程入门与案例详解-自学Python 编程基础、科学计算及数据分析
- 蓝牙音频传输格式:ACC,SBC,APTX和LDAC
- GBase 8a - 开启防火墙安装集群添加端口策略
- python四位数字加密_python实现字符串加密成纯数字
- Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
- 根据前序和中序推出后序
- 什么是restful?说说你对restful的理解
- Tuxera for Mac2022读写硬盘U盘工具
- 神经网络知识点总结,神经网络基础与应用
- python爬取四川建设行业数据共享平台
- delphi源码三层框架【框架简介】
热门文章
- Pycharm菜单栏消失,(File 、view消失)快速调出来的方法。(Professional Edition 2022版)
- 折腾linux随笔 之 关闭Budgie默认自动隐藏应用的菜单栏 与 Gnome系桌面应用菜单无内容解决...
- 每日一淘赋能产品经济全面发展
- 程序员的职业规划,程序员的未来趋势
- Mysql内容查找替换
- 「Wekan」- 看板工具 @20210403
- 如何快速找回丢失的数据?
- 在Arduino上使用433MHz发送和接收模块
- 使用注册表管理桌面新建文件
- mysql5.5忘记密码重置方法_mysql5.5忘记密码重置方法