$compile_id

コンパイルファイルを識別するための id です。すべての関数呼び出しで毎回 $compile_id を渡すかわりに $compile_id を指定すると、その後は暗黙のうちにこれを使用します。

$compile_id を使用すると、同一の $compile_dir を別々の $template_dirs で使用できないという制限を回避できます。 異なる $compile_id をそれぞれの $template_dir で指定すると、Smarty はコンパイルしたテンプレートを $compile_id で区別します。

例として、コンパイル時刻でテンプレートをローカライズ (言語依存のパーツを翻訳) する prefilter を用いる場合、$compile_id に現在の言語を使用することで、各言語についてのコンパイルしたテンプレートのセットを得ることができます。

別の例としては、複数のドメイン/複数のバーチャルホスト をまたがって同じコンパイルディレクトリを使用する場合があります。

Example 12.6. バーチャルホスト環境での $compile_id


<?php

$smarty->compile_id = $_SERVER['SERVER_NAME'];
$smarty->compile_dir = '/path/to/shared_compile_dir';

?>