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:
PHP の予約変数 {$smarty}
を使用すると、
環境変数やリクエスト変数にアクセスすることができます。
アクセスできる内容について、以下に説明します。
$_GET
、$_POST
、
$_COOKIE
、$_SERVER
、
$_ENV
および $_SESSION
といった リクエスト変数
にアクセスするには、下の例のようにします。
Example 4.8. リクエスト変数の表示
{* ($_GET) http://www.example.com/index.php?page=foo から page の内容を表示 *} {$smarty.get.page} {* ($_POST['page']) フォームから送信された変数"page"の値を表示 *} {$smarty.post.page} {* クッキーに登録された"username"の値を表示 ($_COOKIE['username']) *} {$smarty.cookies.username} {* サーバ変数"SERVER_NAME"の値を表示 ($_SERVER['SERVER_NAME']) *} {$smarty.server.SERVER_NAME} {* 環境変数"PATH"の値を表示 *} {$smarty.env.PATH} {* phpのセッション変数"id"の値を表示 ($_SESSION['id']) *} {$smarty.session.id} {* get/post/cookies/server/envの値から、変数"username"の値を表示 *} {$smarty.request.username}
歴史的な理由から、{$SCRIPT_NAME}
には直接アクセスできます。
しかし、この値にアクセスする方法としては
{$smarty.server.SCRIPT_NAME}
が推奨されています。
<a href="{$SCRIPT_NAME}?page=smarty">click me</a> <a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a>
Smarty では、利便性のため PHP のスーパーグローバル変数に直接アクセスすることもできます。 これを使う場合は注意が必要です。 アプリケーションのコードの構造とテンプレートとをまぜてしまうことになるからです。 必要な値だけをテンプレート変数に代入して使うのがお勧めです。
現在の タイムスタンプ
にアクセスするには {$smarty.now}
を使用します。
この値は、いわゆるエポック (1970年1月1日) からの経過秒数が含まれます。
また、これを直接
date_format
修飾子に渡して表示させることができます。実行するたびに
time()
がコールされることに注意しましょう。つまり、全体を処理するのに3秒かかるスクリプトがあったとして、
その最初と最後でそれぞれ $smarty.now
をコールすると、その値には2秒の差が生じます。
{* date_format 修飾子を用いて、現在の日付と時刻を表示します *} {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
PHP 定数の値に直接アクセスできます。smarty 定数 も参照してください。
<?php // php で定義されている定数 define('MY_CONST_VAL','CHERRIES'); ?>
定数を出力するテンプレート
{$smarty.const.MY_CONST_VAL}
Smarty では、利便性のため PHP の定数に直接アクセスすることもできます。 しかし通常は避けたほうがよいでしょう。 アプリケーションのコードの構造とテンプレートとをまぜてしまうことになるからです。 必要な値だけをテンプレート変数に代入して使うのがお勧めです。
組み込みの
{capture}..{/capture}
関数でキャプチャしたテンプレートの出力にアクセスするには
{$smarty.capture}
変数を使用します。
詳細は
{capture}
のページを参照してください。
{$smarty.config}
変数は、読み込まれた
config 変数
を参照するのに使用できます。
{$smarty.config.foo}
は
{#foo#}
と同義です。詳細は
{config_load}
のページを参照してください。
{$smarty.section}
変数は、
{section}
のループプロパティを参照するために使用します。
この中には .first
、.index
といった有用な値が含まれます。
{$smarty.foreach}
変数はもはや使われておらず、新しい
{foreach}
構文になりました。しかし、Smarty 2.x 形式の foreach 構文もサポートしています。
このテンプレートをコンパイルした Smarty のバージョンを返します。
<div id="footer">Powered by Smarty {$smarty.version}</div>
子テンプレートのブロックのテキストを返します。 テンプレートの継承 を参照ください。
親テンプレートのブロックのテキストを返します。 テンプレートの継承 を参照ください。
これらの変数を使用して、左右のデリミタをそのまま表示します。
{ldelim}、{rdelim}
と同じです。
PHP から割り当てられた変数 および 設定ファイルから読み込まれた変数 も参照ください。