qiq / qiq
提供使用PHP自身作为模板语言和可选轻量级模板标记的TemplateView实现。
3.0.0
2023-09-27 20:28 UTC
Requires
- php: ^8.1 | ^8.2 | ^8.3
- laminas/laminas-escaper: ^2.0
- psr/container: ^2.0
Requires (Dev)
- pds/composer-script-names: ^1.0
- pds/skeleton: ^1.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^10.0
- pmjones/php-styler: 0.x-dev
- symfony/finder: ^6.3
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的亲戚包括...
- Savant家族
- Solar_View
- Aura.View
- Laminas View(原名Zend_View)
此包与Aura.View的关系更密切,而不是与Savant的预Composer版本,但它重新引入了Savant编译器钩子概念。