パーサパッケージ

パーサパッケージは、コアのビュークラスを拡張し、任意のテンプレートパーサを使用可能にします。

はじめに

パーサパッケージは、ビューを操作する方法を変えずに、 生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');

ドライバにカスタム設定を行いたい場合にも、役立つかもしれません。