ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP テンプレート使用ガイド

ThinkPHP テンプレート使用ガイド

WBOY
WBOYオリジナル
2016-06-13 13:04:21780ブラウズ

ThinkPHP テンプレート使用ガイド

使用例:

{$webTitle|md5|strtoupper|substr=0,3}

コンパイルされた PHP コードは次のとおりです:

関数の定義と使用順序の対応に注意してください。一般に、関数の最初のパラメータは前の変数、または変数が最初のパラメータでない場合は前の関数の結果です。この関数では、位置決め記号を使用する必要があります。例:

{$create_time|date="y-m-d",###}

コンパイルされた PHP は次のとおりです:

使用する関数の数に制限はありませんが、TMPL_DENY_FUNC_LIST を設定して無効な関数のリストを定義することで、テンプレート出力への損傷を防ぐために、システムはデフォルトで exit 関数と echo 関数を無効にすることができます。例:

TMPL_DENY_FUNC_LIST=>"エコー、終了、停止"

複数の関数を区切るには半角カンマを使用します。

?

また、テンプレート変数を渡さずにテンプレート ファイル内で関数を直接呼び出すためのショートカット メソッドも提供します。これには、次の 2 つのメソッドが含まれます。

1. メソッドを実行し、戻り値を出力します:

形式: {:function(…)}

例: U メソッドの戻り値を出力します:

{:U('ユーザー/挿入')}

コンパイルされた PHP コードは

です

?

2. 出力なしでメソッドを実行します:

形式: {~function(…)}

たとえば、say_hello 関数を呼び出します。

{~say_hello('ThinkPHP')}

コンパイルされた PHP コードは次のとおりです:


システム変数
テンプレート エンジンは、通常の変数の出力に加えて、システム変数、システム定数、およびシステムの出力もサポートしています。特殊な変数。出力を事前にテンプレート変数に割り当てる必要はありません。システム変数の出力は $Think で始まり、関数の使用をサポートする必要があります。

1. システム変数: サーバー、セッション、ポスト、取得、リクエスト、クッキーを含む

{$Think.server.script_name } // $_SERVER 変数を出力

{$Think.session.session_id|md5 } // $_SESSION 変数を出力します

{$Think.get.pageNumber} // $_GET 変数を出力します

{$Think.cookie.name } // $_COOKIE 変数を出力

$_SERVER、$_ENV、$_POST、$_GET、$_REQUEST、$_SESSION、$_COOKIE 変数の出力をサポートします。次のサーバー、Cookie、および構成では大文字と小文字が区別されませんが、変数では大文字と小文字が区別されます。例:

{$Think.server.script_name} と {$Think.SERVER.script_name} は同等です

SESSION と COOKIE は、次のような 2 次元配列の出力もサポートしています。

{$Think.CONFIG.user.user_name}

{$Think.session.user.user_name}

システムでは3次元を超える配列出力をサポートしていませんので、以下の方法で出力してください。

?

上記のメソッドは次のように書くこともできます:

{$_SERVER.script_name } // $_SERVER 変数を出力します

{$_SESSION.session_id|md5 } // $_SESSION 変数を出力します

{$_GET.pageNumber} // $_GET 変数を出力します

{$_COOKIE.name } // $_COOKIE 変数を出力します

?

2. システム定数: $Think.const を使用して

を出力します。

{$Think.const.__SELF__ }

{$Think.const.MODULE_NAME }

または直接使用します

{$Think.__SELF__ }

{$Think.MODULE_NAME }

?

3. 特殊変数: ThinkPHP システムによって内部的に定義された定数

{$Think.version } //バージョン

{$Think.now } //さあ、時間です

{$Think.template|basename} //テンプレート ページ

{$Think.LDELIM } //テンプレートラベルの開始記号

{$Think.RDELIM } //テンプレートタグの終了記号

?

4. 設定パラメータ: プロジェクトの設定パラメータ値を出力します

{$Think.config.db_charset}

出力値は C('db_charset') の戻り結果と同じです。

次のような 2 次元構成パラメータを出力することもできます。

{$Think.config.user.user_name}

?

5. 言語変数: プロジェクトの現在の言語定義値を出力します

{$Think.lang.page_error}

出力値はL('page_error')の戻り結果と同じです。
クイック出力
テンプレート定義をより簡潔にするために、システムは、次のような一般的に使用されるいくつかの変数出力ショートカット タグもサポートしています。

} //出力セッション変数は {$Think.session.var}

と同等です

{#var} //出力 Cookie 変数は {$Think.cookie.var}

と同等です

{&var} //出力構成パラメータは {$Think.config.var}

と同等です

{%var} //出力言語変数は {$Think.lang.var}

と同等です

{.var} //出力 GET 変数は {$Think.get.var}

と同等です

{^var} //出力 POST 変数は {$Think.post.var}

と同等です

{*var} //出力定数は {$Think.const.var}

と同等です

$_SESSION[‘var1’][‘var2’] の値を出力するなど、2 次元配列を出力する必要がある場合は、次のクイック出力を使用できます。

}方法

同様に

{#var1.var2}

$_COOKIE[‘var1’][‘var2’]の値を出力できます。

クイック出力変数は関数の使用をサポートしていないことに注意してください。

したがって、次の使用法は正しくありません:

{#var|strlen}

デフォルト値出力
出力テンプレート変数に値がないが、表示時にデフォルト値を割り当てる必要がある場合は、デフォルト構文の形式を使用できます:

{$variable|default="デフォルト値"}

ここでのデフォルトは関数ではなく、システムの文法規則です。例:

{$user.nickname|default="この男は怠け者で何も残さない"}

システム変数の出力では、次のようなデフォルト値もサポートできます。

{$Think.post.name|default="名前が空です"}

クイック出力は関数の使用をサポートしていないため、デフォルト値は HTML 構文をサポートしません。

インクルードファイル
Includeタグを使用して外部テンプレートファイルをインクルードできます。使用方法は次のとおりです:

1.

を含む完全なファイル名を使用します。

形式:

例:

この場合、テンプレート ファイル名にはサフィックスが含まれている必要があります。完全なファイル名の包含を使用する場合は、ファイルの包含が URL アドレスを含むのではなく、サーバー側の包含を参照すること、つまり、ファイル パラメーターが相対パスとして書き込まれることに特に注意してください。パスが使用される場合、それはプロジェクトのエントリの場所に基づきます。

?

2. 現在のモジュールを含むその他の操作テンプレート ファイル

形式:

たとえば、現在のモジュールの下に読み取り操作テンプレートをインポートします:

操作テンプレートにはサフィックスは必要ありません。

?

3. 他のモジュールの操作テンプレートが含まれています

形式:

たとえば、Public モジュールを含むヘッダー操作テンプレート:

?

4. 他のテンプレート テーマを含むモジュール操作テンプレート

形式:

たとえば、青色のテーマを含むユーザー モジュールの読み取り操作テンプレート:

?

5. 変数を使用してインポートするテンプレートを制御します

形式:

たとえば

$tplName に異なる値を割り当てると、異なるテンプレート ファイルを含めることができます。変数値の使用方法は上記と同じです。

?

6. ショートカットを使用してファイルを含めます

形式: {include: テンプレート ファイル ルール}

テンプレート ファイル ルールでは、上記の 5 つの方法を使用できます。

注: テンプレート解析の特性により、解析はエントリ テンプレートから開始され、外部テンプレートが変更された場合、キャッシュの有効期限が切れない限り、テンプレート エンジンはテンプレートを再コンパイルしません。付属の外部テンプレート ファイルを変更する場合は、モジュールのキャッシュ ディレクトリをクリアする必要があります。クリアしないと変更が反映されません。
ファイルのインポート
外部 JS および CSS ファイルをインポートする従来の方法は、それらをテンプレート ファイル内で直接使用することです: