HTML
HTML表現のために以下のテンプレートエンジンが利用可能です。
Twig vs Qiq
Twigは最初のリリースが2009年にされ多くのユーザーがいます。Qiqは2021年にリリースされた新しいテンプレートエンジンです。
Twigが暗黙的エスケープをデフォルトにし制御構造などをTwig独自構文にしています。それに対して、Qiqは明示的なエスケープを要求し、PHP構文が基本のテンプレートです。 Twigのコードベースは大きく機能も豊富ですがそれに対してQiqはコンパクトでシンプルです。 (冗長になりますがQiqを完全なPHP構文で記述するとIDEや静的解析フレンドリーになります。)
構文比較
PHP
<?= $var ?>
<?= htmlspecialchars($var, ENT_QUOTES|ENT_DISALLOWED, 'utf-8') ?>
<?= htmlspecialchars(helper($var, ENT_QUOTES|ENT_DISALLOWED, 'utf-8')) ?>
<?php foreach ($users => $user): ?>
* <?= $user->name; ?>
<?php endforeach; ?>
Twig
{{ var | raw }}
{{ var }}
{{ var | helper }}
{% for user in users %}
* {{ user.name }}
{% endfor %}
Qiq
{{% var }}
{{h $var }}
{{h helper($var) }}
{{ foreach($users => $user) }}
* {{h $user->name }}
{{ endforeach }}
{{ var }} // 表示されない
<?php /** @var Template $this */ ?>
<?= $this->h($var) ?>
レンダラー
RenderInetrface
にバインドされResourceObjectにインジェクトされるレンダラーがリソースの表現を生成します。リソース自身はその表現に関して無関心です。
リソース単位でインジェクトされるので、複数のテンプレートエンジンを同時に使うこともできます。