php foreach 不等于_PHP中的7个模板引擎
当我们在PHP中讨论模板引擎时,许多开发人员会告诉你,这是没有必要的,他们会说这是学习时间和资源的浪费,因为PHP本质上也是一个模板引擎。但是当你看过很多框架之后,你会发现很多框架都会有模板引擎的存在,所以说php中的模板引擎还是有必要了解一下的。
Mustache
受 ctemplate 和 et等的启发,Mustache 是一种与框架无关的方式来呈现无逻辑视图。正如 ctemplates 所说,"它强调将逻辑与表示分离:不可能将应用程序逻辑嵌入到这种模板语言中。视图不是由 ERB 或 HAML 组成的视图,而是包含随机帮助器和任意逻辑,而是分为两个部分:PHP 类和 HTML 模板。所有逻辑、决策和代码都包含在视图中。所有标记都包含在模板中。模板除了在视图中的引用方法外,什么都不做。这种严格的分离使编写干净的模板更容易,更容易测试视图,并且更有趣地处理应用的前端。
以下代码段提供了 Mustaches 语法外观的预览:
Hello {{name}}You have just won {{value}} dollars!{{#in_ca}}Well, {{taxed_value}} dollars, after taxes.{{/in_ca}}
Plates
plates是一个原生PHP模板系统,快速,易于使用,易于扩展是它的特性。它受到出色的 Twig 模板引擎的启发,并努力将现代模板语言功能引入 PHP 模板中。plates原生的PHP 模板而不是编译的模板语言(如 Twig 或 Smarty),因此受到对速度要求极致的开发人员喜爱。
此模板引擎具有:
- 原生的 PHP 模板,无需学习新语法
- plates是模板系统,而不是模板语言
- plates鼓励使用现有的PHP函数
- 通过模板布局和继承增加代码重用
- 用于将模板分组到命名空间的模板文件夹
- 跨模板的数据共享
- 将数据预先分配给特定模板
- 内置逃生帮助器
- 易于使用的功能和扩展
- 与框架无关,将与任何项目配合使用
- 分离设计使模板易于测试
- 可以使用composer引入
以下代码段提供了板模板引擎语法外观的预览:
<?php $this->layout('template', ['title' => 'User Profile']) ?>
Welcome!
Hello =$this->e($name)?>
Friends
<?php foreach($friends as $friend): ?> e($friend->id)?>"> =$this->e($friend->name)?> <?php endforeach ?><?php if ($invitations): ?>
Invitations
You have some friend invites!
<?php endif ?>
Blade
blade是laravel内置的模板引擎。与其他流行的PHP模板引擎不同,Blade 不会限制您在视图中使用纯 PHP 代码。事实上,所有 Blade 视图都编译成普通的 PHP 代码并缓存,直到修改它们,这意味着 Blade 基本上为应用程序增加了零开销。视图文件使用 .blade.php 文件扩展名。
然而离开laravel,我们很少看到blade的身影,这也许也是它没有更流行的一个原因吧。
Volt
Volt 是一种超快且设计友好的模板语言,采用 C 来编写的。Volt 与 Phalcon 的其他组件高度集成,就像您可以在应用程序中将其用作独立组件一样。volt的灵感来自Jinja,最初由阿明·罗纳彻创作。。Volt 的语法和功能已经通过更多的元素进行了增强,当然,开发人员在使用 Phalcon 时已经习惯了它的极致性能。
以下代码段提供了 Volt 代码外观的快速预览:
{# app/views/products/show.volt #}{% block last_products %}{% for product in products %} * Name: {{ product.name|e }} {% if product.status === 'Active' %} Price: {{ product.price + product.taxes/100 }} {% endif %}{% endfor %}{% endblock %}
Dwoo
Dwoo 是 PHP 的现代、灵活和面向的对象模板引擎,有助于将表示 (HTML/CSS) 与应用程序逻辑分离。在许多方面,dwoo 与 Smarty 的模板和插件兼容,因为 dwoo 的作者基于 Smarty 引入到 Web 开发领域的一般想法。
Dwoo 的模板引擎是一个写得很好、面向对象的模板引擎,与 Smarty 相比,它允许更轻松、更快的开发,并且它仍然足够兼容,允许使用 Smarty 的开发人员平稳过渡到 dwoo。
以下代码段提供了 Dwoo 语法外观的预览:
My Webpage
{foreach $navigation item} {$item.caption} {/foreach}
My Webpage
{$a_variable}
Smarty
Smarty 是诞生非常早的 PHP 的模板引擎,它设计之初就是为了将表示 (HTML/CSS) 与应用程序逻辑分离。这意味着PHP代码是应用程序逻辑,并且与表示分离。Smarty 将模板的副本编译为 PHP 脚本。通过这种方式,您可以获得模板标记语法和 PHP 速度的优点。首次调用每个模板,然后从该点开始使用编译版本,编译一次。Smarty 会为您处理这一问题,因此模板设计器只需编辑 Smarty 模板,就更改了编译的版本,此方法使模板易于维护,并且由于编译的版本是PHP,操作代码加速器(如 APC 或 ZendCache)将继续处理已编译的脚本。
Smarty 是一个模板引擎,用作应用程序的 View 组件。Smarty 可轻松与上面列出的任何引擎耦合为视图组件。Smarty 不保证良好的应用程序设计或适当的演示分离,这仍然需要由有能力的开发人员和网页设计人员来解决。
以下代码段提供了语法外观的预览:
{include file="header.tpl" }User Information:
Name: {$name|capitalize}
Address: {$address|escape}
{include file="footer.tpl"}
Twig
Twig 是 PHP 的模板语言。Twig 使用类似于 Django 和 Jinja 模板语言的语法,这些语言启发了 Twig 的发展。
- 快速: Twig编译模板到纯优化的 PHP 代码。与常规PHP代码相比,开销减少到最低限度。
- 安全:Twig具有用于评估不受信任的模板代码的沙盒模式。这允许 Twig 用作用户可以修改模板设计的应用程序的模板语言。
- 灵活:Twig由灵活的词汇和解析器提供动力。这允许开发人员定义自己的自定义标记和筛选器,并创建自己的 DSL。
Twig 支持轻松构建强大模板所需的一切:多个继承、块、自动输出转义等等。语法易于学习,并已经过优化,使 Web 设计人员无需妨碍其操作即可快速完成工作。
以下代码段提供了此模板引擎语法的预览:
{{ form_label(form.dueDate) }} {{ form_widget(form.dueDate) }} {{ form_help(form.dueDate) }}
{{ form_errors(form.dueDate) }}
LATTE
latte也是PHP的模板引擎之一,它可简化您的工作并确保输出免受漏洞(如 XSS)的攻击。
- latte是快速的:它编译模板到平原优化的PHP代码。
- latte是安全的:它是第一个引入内容感知的逃避的PHP引擎。
- latte是易用的:它有直观的语法,并可以帮助你轻松建立更好的网站。
latte语法是:
{foreach $items as $item}{$item|capitalize}{/foreach}
php foreach 不等于_PHP中的7个模板引擎相关推荐
- thymeleaf文档_springboot中Thymeleaf和Freemarker模板引擎的区别
这两个都是属于模板引擎,可是各有各的好处,enn,在市面上比较多的也就是jsp.freemarker.velocity.thymeleaf等页面方案.Thymeleaf和Freemarker的区别Fr ...
- thymeleaf 获取yml中的值_Thymeleaf模板引擎学习
开发传统Java WEB项目时,我们可以使用JSP页面模板语言,但是在SpringBoot中已经不推荐使用JSP页面进行页面渲染了.从而Thymeleaf提供了一个用于整合Spring MVC的可选模 ...
- Express框架中如何引用ejs模板引擎
1.如何在项目中安装ejs模板引擎 在NodeJS指南中利用利用以下命令建立网站的基本结构: express -t ejs microblog 运行这个命令后继续运行 cd microblog &am ...
- 在 Express中配置使用 art-template 模板引擎 --- express-art-template
1. 模板引擎 为了使 art-template模板引擎能够更好地和Express框架配合,模板引擎在原art-template模板引擎的基础上封装了 express-art-template 安装 ...
- ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签
ThinkPHP6 模板引擎普通标签中,模板引擎运算符函数,循环标签,判断标签的使用,及一些特殊标签 模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的: 标签类型 描述 普通标签 ...
- node中模板引擎、模块导出、package.json简介
在node.js中使用引擎模板: art-template不仅在浏览器可以使用,也可以在node中使用,并且模板引擎起早诞生于服务器领域,在node中使用模板引擎: 1.安装:在一个文件目录下执行命令 ...
- node --- 在express中配置使用模板引擎(art-template)
下载依赖: npm install --save art-template express-art-template 配置: // app.js const express = require(&qu ...
- Flask 中的Jinja2模板引擎
Flask 中的Jinja2模板引擎 在 Web 项目中,前端的显示效果是通过 HTML 语言来实现的,后端的视图函数将数据或模板文件返回给前端. 前端接收到后端返回的结果后,需要通过模板引擎来渲染页 ...
- Koa中使用art-template模板引擎,以及如何接受post请求等
直接上代码,每个代码的作用都有注释: 实现了以下功能: 1.koa中如何使用路由 2.koa中如何使用art-template模板引擎 3.koa中如何使用koa-static解析静态文件 4.koa ...
最新文章
- 验证车牌号码是否有效
- 准备:新V8即将到来,Node.js的性能正在改变
- python中异常和错误是一个概念_Python的异常概念介绍以及处理
- linux shell 求绝对值
- 在需要时开启Perl新特性
- 星光 SaaS 伙伴甄云科技:如何构建更适合快成长企业的数字化采购管理平台?
- 图书管理系统项目开发计划书
- Odin Inspector 系列教程 --- 初识Odin序列化
- QQ魔法卡片辅助工具外挂silverlight版
- vue抽屉_vue 自定义抽屉组件 仿 iview
- Kubernetes operators
- css轻松写出梦幻西游动画效果
- 删除win10自带微软中文输入法
- 感人!华为员工累死,同事模仿鲁迅写《纪念胡新宇君》(转贴)
- Antd的table筛选,表头columns的filters过滤清空
- Yuuki and a problem (树套树)
- 电脑开机后网络一直转圈,程序也打不开——亲测解决办法
- php tcpdf 没有头部,TCPDF使用总结 - 从头笑到尾的个人空间 - OSCHINA - 中文开源技术交流社区...
- 日常英语---八、REBOOT - What is the difference? -MapleStory
- python获取毛豆新车网在售车型
热门文章
- 为什么叫python编程-中小学生为什么要学Python编程
- python可以自学吗-大家觉得自学python多久能学会?
- python怎么判断一个文件是否存在-python判断文件是否存在
- 21天学通python第二版-电子工业出版社-网上书店
- python3下载文件-Python3学习笔记(十八):文件上传和下载
- 如何自学python数据分析-『』python数据分析该怎么入门呢?
- python读文件操作-python文件操作读取文件写入文件
- 率土之滨显示未选择服务器是什么意思,率土之滨随机合服方案热门问题解答
- LeetCode Count and Say
- cmd - 命令行窗口中文乱码