| 属性名 | 型 | 必須 | デフォルト | 概要 |
|---|---|---|---|---|
| file | string | Yes | n/a | インクルードするphpファイル名 |
| once | boolean | No | true | 同じphpファイルが複数回インクルードされた場合は、一度だけインクルードするかどうか |
| assign | string | No | n/a | include_phpの出力を格納する変数名 |
テクニカルノート: include_php は Smarty でほとんど推奨されていません。カスタムテンプレート関数を通じて 同等の機能が実現できます。include_php を使用する唯一の理由は、php 関数を プラグインディレクトリまたはアプリケーションコードから退避させる必要が本当にある場合です。 詳細は、コンポーネントされたテンプレートの例を参照して下さい。
テンプレートにphpスクリプトをインクルードします。セキュリティが有効の時には、phpスクリプトは$trusted_dirで指定されたディレクトリに位置する必要があります。file属性にはインクルードするphpファイルのパス($trusted_dirからの相対パス、又は絶対パス)を必ず指定して下さい。
include_phpは、phpスクリプトをテンプレートファイルから分離して管理するのに最適です。例えば、サイトナビゲーションを示すテンプレートがある時に、データベースから動的に取得する事が可能です。それには、データベースにあるコンテンツを別のディレクトリに取り込むphpスクリプトを用意し、テンプレートの初めにこれをインクルードします。事前にアプリケーションによってデータベースの情報が割り当てられていれば、何の問題も無くこのテンプレートをインクルードする事ができます。
デフォルトでは、phpファイルはテンプレート内で複数回呼ばれても一度しかインクルードしません。once属性によって毎回インクルードするべきかどうかを指定できます。この属性をfalseに設定すると、テンプレート内でインクルードされる毎にphpスクリプトをインクルードします。
include_phpの出力をブラウザ表示する代わりに変数に格納するには、 assign属性を指定します。
smartyオブジェクトは、インクルードしたphpスクリプトの範囲内で$thisとして有効です。