7个最好的开源PHP模板引擎推荐

本文概述

  • 7.Mustache
  • 6.Plates
  • 5.Blade
  • 4.Volt
  • 3.Dwoo
  • 2.Smarty
  • 1.Twig
  • 0.Latte
当我们谈论PHP中的模板引擎时, 许多开发人员会告诉你这是不必要的, 实际上是在浪费学习时间和资源, 因为PHP基本上是模板引擎本身。但是, 与最近针对该语言的模板引擎的新提议不同, PHP语法在最近几年没有发展。这是开发人员中非常关键的讨论主题, 因此, 完全由你决定是否在PHP项目中实现或使用模板引擎。我们只能说一件事, 如果你正在考虑在项目中实现模板引擎, 我们可以向你推荐其中的两个。
在本文的顶部, 我们将与你分享7个最无能为力的基于PHP的开源模板引擎。
7.Mustache
7个最好的开源PHP模板引擎推荐

文章图片
受ctemplate和et的启发, Mustache是??一种与框架无关的方式来呈现无逻辑的视图。正如ctemplates所说, “ 它强调将逻辑与表示分离:不可能将应用程序逻辑嵌入这种模板语言中。” 将Mustache想像成你的观点的替代品。你的视图分为两部分:PHP类和HTML模板, 而不是由带有随机助手和任意逻辑的ERB或HAML组成的视图。你的所有逻辑, 决策和代码都包含在视图中。你所有的标记都包含在模板中。该模板仅在你的视图中引用方法。这种严格的分隔使编写干净的模板变得更容易, 测试视图也更容易, 并且在应用程序的前端工作更加有趣。以下代码段提供了Mustaches语法的预览:
Hello {{name}} You have just won {{value}} dollars! {{#in_ca}} Well, {{taxed_value}} dollars, after taxes. {{/in_ca}}

6.Plates
7个最好的开源PHP模板引擎推荐

文章图片
Plates是本机PHP模板系统, 它快速, 易于使用且易于扩展。它的灵感来自于出色的Latte模板引擎, 并致力于将现代模板语言功能引入本地PHP模板。 Plates是为那些喜欢使用本地PHP模板而不是Latte或Smarty等编译模板语言的开发人员设计的。该模板引擎具有:
  • 本机PHP模板, 无需学习新语法
  • Plates是模板系统, 而??不是模板语言
  • Plates鼓励使用现有的PHP函数
  • 通过模板布局和继承来增加代码重用
  • 模板文件夹, 用于将模板分组为名称空间
  • 跨模板共享数据
  • 将数据预分配给特定模板
  • 内置转义助手
  • 易于使用功能和扩展进行扩展
  • 与框架无关, 可与任何项目一起使用
  • 解耦设计使模板易于测试
  • 兼容Composer且符合PSR-2
以下代码段预览了模板模板引擎语法的外观:
< ?php $this-> layout('template', ['title' => 'User Profile']) ?> < h1> Welcome!< /h1> < p> Hello < ?=$this-> e($name)?> < /p> < h2> Friends< /h2> < ul> < ?php foreach($friends as $friend): ?> < li> < a href="http://www.srcmini.com/profile/< ?=$this-> e($friend-> id)?>"> < ?=$this-> e($friend-> name)?> < /a> < /li> < ?php endforeach ?> < /ul> < ?php if ($invitations): ?> < h2> Invitations< /h2> < p> You have some friend invites!< /p> < ?php endif ?>

5.Blade 首选Github
第二选择Github
Blade是Laravel提供的简单但功能强大的模板引擎。与其他流行的PHP模板引擎不同, Blade不会限制你在视图中使用纯PHP代码。实际上, 所有Blade视图都被编译为纯PHP代码并被缓存直到被修改, 这意味着Blade实质上为你的应用程序增加了零开销。Blade视图文件使用.blade.php文件扩展名。
可惜的是, Blade不在框架之外的laravel团队没有得到官方的支持, 并且还有许多其他的公共实现应该像原始的Blade模板引擎一样工作, 但是并不是所有人都值得。我们建议你在单个文件中使用2种免费的Blade服务器替代品(MIT许可证, 即关闭源/私有代码是可以的), 并且不依赖外部库。
4.Volt Volt是一种用C语言为PHP编写的超快速且设计友好的模板语言。它为你提供了一组帮助程序, 可以轻松地编写视图。 Volt与Phalcon的其他组件高度集成, 就像你可以在应用程序中将其用作独立组件一样。 Volt的灵感来自最初由Armin Ronacher创建的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 %}

3.Dwoo Dwoo(/di?-wu:/)(风格化为dwoo)是一种用于PHP的现代, 灵活且面向对象的模板引擎, 有助于将表示形式(HTML / CSS)与应用程序逻辑分离。在许多方面, dwoo与Smarty的模板和插件兼容, 因为dwoo的作者基于Smarty向Web开发领域介绍的一般思想。这个想法由Jordi Boggiano于2008年初提出, 这个想法来自Smarty越来越老的事实。它承载着时代的力量, 具有与较新的功能相比不一致的旧功能, 是为PHP4编写的, 它没有利用PHP5在该领域更高级的功能。
Dwoo的模板引擎利用了PHP5提供的新功能。因此, 它是一个编写良好的, 面向对象的模板引擎, 与Smarty相比, 它可以更轻松, 更快地进行开发, 并且仍具有足够的兼容性, 允许使用Smarty的开发人员顺利过渡到dwoo。以下代码片段预览了Dwoo语法的外观:
< !DOCTYPE html> < html> < head> < title> My Webpage< /title> < /head> < body> < ul id="navigation"> {foreach $navigation item} < li> < a href="http://www.srcmini.com/{$item.href}"> {$item.caption}< /a> < /li> {/foreach} < /ul> < h1> My Webpage< /h1> {$a_variable} < /body> < /html>

2.Smarty
7个最好的开源PHP模板引擎推荐

文章图片
【7个最好的开源PHP模板引擎推荐】Smarty是PHP的模板引擎, 有助于将表示形式(HTML / CSS)与应用程序逻辑分离。这意味着PHP代码是应用程序逻辑, 并且与表示分离。在后台, Smarty将模板的副本编译为PHP脚本。这样, 你就可以同时受益于模板标记语法和PHP的速度。第一次调用每个模板时, 编译会发生一次, 然后从那时开始使用已编译的版本。 Smarty会为你解决此问题, 因此模板设计者只需编辑Smarty模板即可, 而无需管理编译版本。这种方法使模板易于维护, 并且使执行时间非常快。由于编译版本是PHP, 因此操作代码加速器(例如APC或ZendCache)将继续在编译脚本上运行。
Smarty是模板引擎, 并且充当应用程序的(V)iew组件。 Smarty可以轻松地耦合到上面列出的作为视图组件的任何引擎上。与其他软件一样, Smarty具有学习曲线。 Smarty不能保证良好的应用程序设计或适当的表示分离, 这仍然需要有能力的开发人员和网页设计师解决。以下代码段提供了smarty语法的预览:
{include file="header.tpl" title="Info"}User Information:< p> Name: {$name|capitalize}< br> Address: {$address|escape}< br> {include file="footer.tpl"}

1.Twig
7个最好的开源PHP模板引擎推荐

文章图片
Latte是PHP的模板语言, 根据新的BSD许可证(代码和文档)发布。 Latte使用类似于Django和Jinja模板语言的语法, 这启发了Latte运行时环境。
  • 快速:Latte将模板编译为纯优化的PHP代码。与常规PHP代码相比, 开销降低到最低限度。
  • 安全:Latte具有沙盒模式以评估不受信任的模板代码。这允许将Latte用作用户可以修改模板设计的应用程序的模板语言。
  • 灵活:Latte由灵活的词法分析器和解析器提供支持。这使开发人员可以定义自己的自定义标签和过滤器, 并创建自己的DSL。
Latte支持轻松构建功能强大的模板所需的一切:多重继承, 块, 自动输出转义等等。该语法易于学习, 并且经过优化, 可以使Web设计人员快速完成工作, 而不会遇到麻烦。以下代码片段预览了该模板引擎的语法:
< div class="form-control"> < i class="fa fa-calendar"> < /i> {{ form_label(form.dueDate) }} {{ form_widget(form.dueDate) }}< small> {{ form_help(form.dueDate) }}< /small> < div class="form-error"> {{ form_errors(form.dueDate) }} < /div> < /div>

0.Latte 拿铁
7个最好的开源PHP模板引擎推荐

文章图片
Latte是PHP的模板引擎, 可简化你的工作, 并确保输出免受XSS等漏洞的影响。
  • Latte速度很快:它将模板编译为简单的优化PHP代码。
  • Latte是安全的:这是第一个引入内容感知转义的PHP引擎。
  • 拿铁说你的语言:它具有直观的语法, 可帮助你轻松构建更好的网站。
拿铁的语法是:
< ul n:if="$items"> {foreach $items as $item} < li id="item-{$iterator-> counter}"> {$item|capitalize}< /li> {/foreach} < /ul>

可以在网站上找到文档。
如果你知道另一个基于PHP的出色模板引擎, 请在评论框中与社区共享。

    推荐阅读