goetas / twital
PHP模板引擎,结合了Twig和PHPTal的强大功能点
Requires
- php: ^7.1|^8.0
- ext-dom: *
- masterminds/html5: ^2.1.2
- symfony/event-dispatcher: ^3.4|^4.4|^5.1|^6.0
- twig/twig: ^1.43|^2.13|^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.19
- phpunit/phpunit: ^7.5|^8.0|^9.0
- scrutinizer/ocular: ^1.3
- symfony/var-dumper: ^3.4|^4.4|^5.1|^6.0
README
Twital是什么?
Twital是一个基于Twig(一个用于PHP的模板引擎,也是Symfomy的默认模板引擎)构建的模板引擎,它添加了一些快捷方式,使Twig的语法更适合基于HTML(XML、HTML5、XHTML、SGML)的模板。Twital从PHPTal、TAL和AngularJS或Vue.js(仅就某些方面而言)中汲取灵感,将它们的语言语法与功能强大的Twig模板引擎系统相结合。
Twital与Twig完全兼容,所有Twig模板都可以使用Twital渲染。
为了更好地理解Twital的优势,考虑以下Twital模板,它简单地显示了一个数组中的用户列表
<ul t:if="users"> <li t:for="user in users"> {{ user.name }} </li> </ul>
要使用Twig做同样的事情,你需要
{% if users %} <ul> {% for user in users %} <li> {{ user.name }} </li> {% endfor %} </ul> {% endif %}
如你所见,Twital模板更易读,更简洁,并且你不需要担心打开和关闭块指令(它们是从HTML结构继承的)。
Twital的主要优势之一是控制语句的隐式存在,这使得模板更易读,更简洁。此外,它还具有所有Twig功能,例如模板继承、翻译、循环、过滤、转义等。
如果某些Twig功能不是直接对Twital可用,你可以自由混合Twital和Twig语法。
在下面的例子中,我们混合了Twital和Twig语法以使用Twig自定义标签
<h1 t:if="users"> {% custom_tag %} {{ someUnsafeVariable }} {% endcustom_tag %} </h1>
当需要时,你可以从Twig模板扩展
<t:extends from="layout.twig"> <t:block name="content"> Hello {{name}}! </t:block> </t:extends>
你也可以从Twig扩展Twital模板
{% extends "layout.twital" %} {% block content %} Hello {{name}}! {% endblock %}
Twital功能和优势的演示可以在这里找到。
安装
推荐通过Composer安装Twital。
composer require goetas/twital
文档
访问http://twital.readthedocs.org/ 了解Twital的更详细文档。
入门
首先,你需要创建一个包含你的模板的文件(例如命名为demo.twital.html
)
<div t:if="name"> Hello {{ name }} </div>
之后,你需要创建一个PHP脚本来实例化所需的对象
require_once '/path/to/composer/vendor/autoload.php'; use Goetas\Twital\TwitalLoader; $fileLoader = new Twig_Loader_Filesystem('/path/to/templates'); $twitalLoader = new TwitalLoader($fileLoader); $twig = new Twig_Environment($twitalLoader); echo $twig->render('demo.twital.html', array('name' => 'John'));
就这样!
Symfony用户
如果你是Symfony用户,你可以使用TwitalBundle将Twital添加到你的项目中。
该捆绑包集成了所有最常见的功能,如Asetic、表单、翻译、路由等。
Twig用户
从Twital 1.0.0版本开始,支持twig 1.x和2.x版本。
注意
本项目的代码遵循MIT许可证。如需专业支持,请联系goetas@gmail.com或访问https://www.goetas.com