{include_php}
テクニカルノート
{include_php} は Smarty ではほとんど推奨されていません。
カスタムテンプレート関数を使用すれば、同等の機能を実現できます。
{include_php} を使用する理由がもしあるとすれば、
plugins/
ディレクトリやアプリケーションのコードから PHP 関数を完全に隔離したい場合などです。
詳細は コンポーネント化したテンプレートの例
を参照してください。
属性名
型
必須
デフォルト
概要
file
string
Yes
n/a
インクルードする PHP ファイル名
once
boolean
No
&true;
同じ PHP ファイルが複数回インクルードされた場合に、一度だけインクルードするかどうか
assign
string
No
n/a
include_php の出力を格納する変数名
{include_php} タグを使用して、PHP スクリプトをテンプレートにインクルードします。
$security
が有効な場合は、PHP スクリプトは $trusted_dir
で指定されたディレクトリに存在する必要があります。{include_php}
タグには file 属性が必須で、
ここにはインクルードする PHP ファイルへのパスを指定します。
このパスは $trusted_dir
からの相対パスか絶対パスのいずれかとなります。
デフォルトでは、PHPファイルはテンプレート内で複数回呼ばれても一度しかインクルードしません。
once 属性によって毎回インクルードするべきかどうかを指定できます。
この属性を &false; に設定すると、テンプレート内でインクルードの指示がある毎に
PHP スクリプトをインクルードします。
オプションで assign 属性を渡すこともできます。
これは、{include_php} の出力をブラウザに表示させる代わりに
変数に格納したい場合に、その変数名を指定します。
Smarty オブジェクトは、インクルードした PHP スクリプト内で
$this として使用可能です。
{include_php} 関数
load_nav.php ファイル
query('select url, name from navigation order by name');
$this->assign('navigation', $db->getRows());
?>
]]>
テンプレート
{$nav.name}
{/foreach}
]]>
{include}、
$security、
$trusted_dir、
{php}、{capture}、テンプレートリソース および コンポーネント化したテンプレート
も参照してください。