パーサパッケージ
パーサパッケージは、コアのビュークラスを拡張し、任意のテンプレートパーサを使用可能にします。
はじめに
パーサパッケージは、ビューを操作する方法を変えずに、 生PHPの代わりに任意のテンプレートパーサを使用可能にします。対応しているパッケージには、 Dwoo, Haml, Jade, Lex, Markdown, Mustache, PHPTal, Smarty そして Twig があります。
どのパーサが使用されるかは、ビューファイルのファイル拡張子によって決められます。PHP がパースする標準のビューは ファイル拡張子 .php を使用します。.php はデフォルトの拡張子で、もし拡張子が指定されない場合、 .php 拡張子を使用します。
他のテンプレートパーサは、それぞれの拡張子を持っています。たとえば Mustache は foo.mustache を使用し、 Dwoo は foo.tpl を使用し、Lex は foo.lex を使用し、などです。 デフォルトの拡張子は config で設定できます。
インストール
パーサパッケージは Fuel のダウンロードに含まれています。これを使用するには 、まず config に下記を 追加して利用可能にしなければなりません。
'always_load' => array(
'packages' => array(
'parser',
),
),
サポートされるパーサのいずれかを使用可能にするには、composerでインストールする必要があります。 ライブラリを、自分のプロジェクトの composer.json に追加し、php composer.phar install を実行してください。
{
"require": {
"dwoo/dwoo" : "*",
"mustache/mustache" : "*",
"smarty/smarty" : "*",
"twig/twig" : "*",
"mthaml/mthaml": "*",
"pyrocms/lex": "*"
}
}
Markdown パーサはデフォルトでインストールされています。Markdown は FuelPHP のコアクラス Markdown で使用されています。
composer でインストールできないライブラリは、APPPATH/vendor/lib_name (lib_name は大文字) にインストールすることを想定しています。ライブラリは自分でダウンロードしてください。大文字小文字を変更しないでください。 vendor/lib_name ディレクトリ内を可能な限りオリジナルと同じにして、更新しやすいようにしてください (オートローダにも関係することがあります)。
設定
パーサは config/parser.php ファイルで設定できます。以下のキーを使用します。
パラメータ | 型 | デフォルト | 説明 |
---|---|---|---|
extensions | array | (拡張子、パースするビュークラス、の配列) |
有効な拡張子と対応するビュードライバを定義します。 ex: 'md' => 'View_Markdown' |
サポートされているビュードライバにはすべて、設定ファイル内に、ドライバ名と同じ名前の配列があり、 ドライバ固有の設定がリストアップされています。 (そのドライバにサポートされているアイテムのみです。 パーサがサポートする設定のうち、一部かもしれません)
ランタイム設定
全てのドライバは、現在のパーサオブジェクトにアクセスする parser() メソッドを有します。 これは必須条件 (requirement) ではなく規約 (convention) ですので、サードパーティ製ドライバによって 異なることがあります。
// 特定の Smarty テンプレートのキャッシュをクリアする。
$view = View::forge('example.smarty');
$view->parser()->clearCache('example.smarty');
// 静的な使い方の例
View_Smarty::parser()->clearCache('example.smarty');
ドライバにカスタム設定を行いたい場合にも、役立つかもしれません。