Composer を通じて Qiq をインストールした後...
composer require qiq/qiq ^3.0
...はここから始められます。
Githubリポジトリはqiqphp/qiq にあります。
Qiqは、ネイティブPHPテンプレートを好むが、より簡潔さを求める開発者向けです。 以下を提供します:
<?php ?>
と{{ qiq }}
構文Qiqは、デザイナーやコンテンツ作成者に対してテンプレートを何らかの方法で「保護」する必要があるシステムには向いていません。そのような場合は、 Handlebars、 Mustache、 またはTwigのようなものを使用してください。
Qiqは通常のPHPで、必要に応じて軽いシンタックスシュガーを加えたものです。
例えば、通常のPHPでのエスケープは次のようになります:
<?php echo htmlspecialchars(
$var,
ENT_QUOTES|ENT_DISALLOWED,
'utf-8'
) ?>
これは、HTMLエスケープ用のQiqヘルパーを使用した同じものです:
<?= $this->h($var) ?>
最後に、これはQiqのシンタックスシュガーを使用した同じものです:
{{h $var }}
同じテンプレート内で通常のPHPとQiqを常に混在させることができます。例えば:
<?php $var = random_int(1, 99) ?>
{{h $var }}
実際、認識されないQiqコードはPHPとして扱われます。例えば、次のQiqコードは...
{{ $title = "Prefix: " . $title . " (Suffix)" }}
<title>{{h $title}}</title>
...このPHPコードとQiqヘルパーと同等です:
<?php $title = "Prefix: " . $title . " (Suffix)" ?>
<title><?= $this->h($title) ?></title>
これにより、既存のPHPテンプレートでQiqを簡単に使用でき、必要に応じてPHP構文からQiq構文への円滑な移行が可能になります。
Qiqヘルパーは単に_Helper_オブジェクトのメソッドです。例えば、HTML フォーム要素の<select>
を追加するには、Qiqでヘルパーを使用して生成できます...
{{= select (
id: 'country-select',
name: 'Country',
value: 'usa',
placeholder: 'Please pick a country',
default: 'usa',
options: [
'usa' => 'United States',
'can' => 'Canada',
'mex' => 'Mexico',
],
) }}
..または通常のPHPで
<?= $this->select (
id: 'country-select',
name: 'Country',
value: 'usa',
placeholder: 'Please pick a country',
default: 'usa',
options: [
'usa' => 'United States',
'can' => 'Canada',
'mex' => 'Mexico',
],
) ?>
一般的なHTMLヘルパー、フォームヘルパーについてさらに詳しく読むか、カスタムヘルパーの作成方法を学んでください。
Qiqは自動エスケープを提供しません。設計上、{{ ... }}
タグは出力を生成しません。すべての出力は、特定のコンテキストに対して明示的にエスケープする必要があり、開始タグの後の最初の文字で示されます:
{{h ... }}
はHTML コンテンツ用にエスケープします{{a ... }}
はHTML 属性用にエスケープします{{u ... }}
はURL 用にエスケープします{{c ... }}
はCSS 用にエスケープします{{j ... }}
はJavaScript 用にエスケープします{{= ... }}
は生の、エスケープされていない出力ですこれはQiqの意図的な設計選択です。自動エスケープを使用すると、どのコンテキストでエスケープすべきかを忘れやすくなります。コンテキストを明示的にマークすることで、常に何をしているかを考える必要があります。セキュリティに関しては、これは良いことです。
もっと知りたいですか?ここから始めましょう!