qiq/qiq

提供使用PHP自身作为模板语言和可选轻量级模板标记的TemplateView实现。

3.0.0 2023-09-27 20:28 UTC

This package is auto-updated.

Last update: 2024-08-27 22:18:42 UTC


README

此包提供使用PHP 8.1+作为模板语言实现的TemplateView模式,并附带可选的{{ ... }}语法,用于简洁的转义和辅助函数使用。

文档

阅读文档:https://qiqphp.com.

背景

我不喜欢编译模板或专门的模板语言。Smarty、Twig等都是过于重量级的。我不需要一种新语言,也不需要“保护”我的模板免受团队中设计师的影响。我通常对纯PHP作为模板语言感到满意。

然而,我发现转义很繁琐——虽然必要且足够简单,但很繁琐。一个输出转义HTML的模板辅助函数,如下所示...

<?= $this->h($var) ?>

...并不那么糟糕——但即便如此,它还可以更简单一些。想象一下这种语法糖

{{h $var }}

所发生的一切只是将{{h ... }}替换为<?= $this->h(...) ?>

一旦实现,就很容易支持辅助函数、控制结构和其它代码,同时保持原生PHP作为后备语法,因为{{ ... }}标签实际上就是PHP标签的替代品。

Qiq真的是PHP——只是在需要的时候提供一些语法糖。

历史

Qiq的亲戚包括...

此包与Aura.View的关系更密切,而不是与Savant的预Composer版本,但它重新引入了Savant编译器钩子概念。