What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{include_php}
は Smarty では非推奨になりました。
プラグインを登録して使い、プレゼンテーションとアプリケーションのコードを適切に分離するようにしましょう。
属性名 | 型 | 必須 | デフォルト | 概要 |
---|---|---|---|---|
file | string | Yes | n/a | インクルードする PHP ファイルの絶対パス |
once | boolean | No | TRUE |
同じ PHP ファイルが複数回インクルードされた場合に、一度だけインクルードするかどうか |
assign | string | No | n/a | include_php の出力を格納する変数名 |
オプションのフラグ
名前 | 概要 |
---|---|
nocache | インクルードした PHP スクリプトのキャッシュを無効にする |
{include_php}
タグを使用して、PHP スクリプトをテンプレートにインクルードします。
属性 file
のパスには、絶対パスあるいは
$trusted_dir
からの相対パスを指定することができます。セキュリティが有効な場合は、スクリプトは
セキュリティポリシーの $trusted_dir
で指定したパスに存在する必要があります。
詳細は セキュリティ の節を参照ください。
デフォルトでは、PHPファイルはテンプレート内で複数回呼ばれても一度しかインクルードしません。
once
属性によって毎回インクルードするべきかどうかを指定できます。
この属性を FALSE
に設定すると、テンプレート内でインクルードの指示がある毎に
PHP スクリプトをインクルードします。
オプションで assign
属性を渡すこともできます。
これは、{include_php}
の出力をブラウザに表示させる代わりに
変数に格納したい場合に、その変数名を指定します。
Smarty オブジェクトは、インクルードした PHP スクリプト内で
$_smarty_tpl->smarty
として使用可能です。
Example 7.52. {include_php} 関数
load_nav.php
ファイル
<?php // mysql データベースから変数の値を読み込み、それをテンプレートに割り当てます require_once('database.class.php'); $db = new Db(); $db->query('select url, name from navigation order by name'); $this->assign('navigation', $db->getRows()); ?>
テンプレート
{* 絶対パス、あるいは $trusted_dir からの相対パス *} {include_php file='/path/to/load_nav.php'} {include_php '/path/to/load_nav.php'} {* 短縮形 *} {foreach item='nav' from=$navigation} <a href="{$nav.url}">{$nav.name}</a><br /> {/foreach}
{include}
、
$trusted_dir
、
{php}
、{capture}
、テンプレートリソース および コンポーネント化したテンプレート も参照ください。