PHP模板引擎,你了解多少?

对于良好的可维护性的中型项目(在我看来是超过4个页面),对页面的逻辑视图进行分隔是至关重要的。在一个有着几个页面的应用程序,使用在页面中插入包含的所有必要逻辑可能就足够了,但是当使用一个路由器的时候,找到一个好的模板引擎是很重要的。下表列举的六个绝佳的PHP模板引擎可能会助你一臂之力。

Smarty http://www.smarty.net/

Smarty算是一种很老的PHP模板引擎了,它曾是我使用这门语言模板的最初选择。虽然它的更新已经不算频繁了,并且缺少新一代模板引擎所具有的部分特性,但是它仍然值得一看。

PHP模板引擎

以下代码段提供了 Smarty 语法外观的预览:

{include file=”header.tpl” title=”Info”}

User Information:<br>Name: {$name|capitalize}<br>Address: {$address|escape}<br>

{include file=”footer.tpl”}

Twig http://twig.sensiolabs.org/

Twig是来自于Symfony的模板引擎,它非常易于安装和使用。它的操作有点像Mustache和liquid。

PHP模板引擎

以下代码段提供了 Twig 语法的预览:

<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>

Haml https://github.com/arnaud-lb/MtHaml

移植了同名的Ruby模板语言。注意,HAML使用的缩进模式(例如像Python)可能在最初会给你带来一定的困扰(而一旦你熟悉这种模式之后便会上瘾)。

PHP模板引擎

Liquid https://github.com/harrydeluxe/php-liquid

生成Shopify(以及原始的Ruby),Liquid是在限制用户权限的同时又可使其自定义页面服务风格的完美语言。此外,这个语言是跨平台的,并且相同的模板可在PHP和Ruby中交替使用。

PHP模板引擎

Mustache http://mustache.github.io/

作为多种语言的模板,Mustache可以兼容所有能够想到语言的模板(例如,甚至包括bash)。

PHP模板引擎

以下代码段提供了 Mustaches 语法外观的预览:

Hello {{name}}You have just won {{value}} dollars!{{#in_ca}}Well, {{taxed_value}} dollars, after taxes.{{/in_ca}}

Plates http://platesphp.com/

Plate受到Twig启发,重载了PHP的原生特性。如果你不想使用需要编译的模板语言,它可以为你大开方便之门。

PHP模板引擎

以下代码段提供了 Plate 语法外观的预览:

<?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=”/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 ?>

LATTE https://github.com/nette/latte

latte也是PHP的模板引擎之一,它可简化您的工作并确保输出免受漏洞(如 XSS)的攻击。

latte是快速的:它编译模板到平原优化的PHP代码。latte是安全的:它是第一个引入内容感知的逃避的PHP引擎。latte是易用的:它有直观的语法,并可以帮助你轻松建立更好的网站。
以下代码段提供了 latte 语法外观的预览:

<ul n:if=”$items”>{foreach $items as $item} <li id=”item-{$iterator->counter}”>{$item|capitalize}</li>{/foreach}</ul>

Dwoo https://github.com/dwoo-project/dwoo

Dwoo 是 PHP 的现代、灵活和面向的对象模板引擎,有助于将表示 (HTML/CSS) 与应用程序逻辑分离。在许多方面,dwoo 与 Smarty 的模板和插件兼容,因为 dwoo 的作者基于 Smarty 引入到 Web 开发领域的一般想法。

Dwoo 的模板引擎是一个写得很好、面向对象的模板引擎,与 Smarty 相比,它允许更轻松、更快的开发,并且它仍然足够兼容,允许使用 Smarty 的开发人员平稳过渡到 dwoo。

以下代码段提供了 Dwoo 语法外观的预览:

<ul id=”navigation”> {foreach $navigation item} <li><a href=”{$item.href}”>{$item.caption}</a></li> {/foreach} </ul> <h1>My Webpage</h1> {$a_variable} 

Blade https://github.com/EFTEC/BladeOne

blade是laravel内置的模板引擎。与其他流行的PHP模板引擎不同,Blade 不会限制您在视图中使用纯 PHP 代码。事实上,所有 Blade 视图都编译成普通的 PHP 代码并缓存,直到修改它们,这意味着 Blade 基本上为应用程序增加了零开销。视图文件使用 .blade.php 文件扩展名。

 

转载请注明出处:https://www.onexin.net/php-template-engine/

相关文章:

1、Yii 2.0 框架中使用Smarty视图模板引擎
https://www.onexin.net/yii-2-0-smarty/

2、用 PHP 编写更好的正则表达式regex
https://www.onexin.net/php-regex/

3、PHP 版本 8.2,8.1,8.0,7.4
https://www.onexin.net/php-8_2-8_1-8_0-7_4/

4、PHP中的Liskov替换原则
https://www.onexin.net/php-liskov/

5、php实现自运行的do实例详解
https://www.onexin.net/php-do/

Leave a Reply