テンプレート
テンプレートとは何なのか疑問に思っている場合は、まず、Sascha Schumann による優れた記事「Templates - Why and how to use them in PHP3」の最初の数段落を読んでください。
一般に、テンプレートを使用すると、PHP コードを HTML から完全に分離できるため、HTML グラフィック デザイナーは非常に満足し、貴重なデザインが失われないようにします。
FastTemplatesではありません
それでは、PHPBuilderのテンプレートについて別の記事が本当に必要なのでしょうか? PHP でテンプレートを実装する方法は複数あるためです。 Sascha の記事では FastTEmplate の使用方法が説明されていますが、PHP Basic Library (「PHPLIB」) には独自のテンプレート実装があります。
その違いは何ですか? FastTemplates はもともと Perl ライブラリから変換されました。 FastTemplate は Perl プログラムではうまく機能しますが、PHP では理想的とは言えません。 Kristian Koehntopp は、PHP の利点をより良く提供する純粋な PHP ライブラリとして PHPLIB テンプレートを最初から作成しました。利点の 1 つは、Kristian の設計が preg_replace() を使用してテンプレートを分析していることです。これは、FastTemplate で使用される ereg_replace() よりも高速であると言われています。 PHPLIB テンプレートのもう 1 つの利点は、FastTemplate とは異なり、ブロックを動的にネストできることです。
どちらのライブラリも非常によく似た機能と機能を備えていますが、すでに FastTemplates を使用していて、PHPLIB テンプレートの使用方法を学びたい場合は、FastTemplates について知っていることをすべて忘れる必要があります。それらの機能は似ているかもしれませんが、PHPLIB テンプレートが行うことはすべて FastTemplate とは少しだけ異なります。
PHPLIB テンプレートの使用
簡単な例から始めましょう。 /home/mydir/mytemplates/ に MyTemplate という名前のテンプレートがあり、テキストが含まれており、その内容が次のようなものであると仮定します。
おめでとうございます! {some_color}ホンダ プレリュードを獲得しました!
「{some_color}」は中括弧で囲まれていることに注意してください。中括弧は、some_color がテンプレート変数であることを示します。テンプレートをロードし、{some_color} テンプレート変数の代わりに PHP 変数 $my_color の値を挿入し、新しいテキストを出力するスクリプトを作成するとよいでしょう。 $my_color がたまたま「blue」に設定されている場合、最終出力は次のようになります:
おめでとうございます!新しい青いホンダ プレリュードが当たります!
上記の結果の PHP スクリプトは次のとおりです: include "template.inc";
$my_color = "blue"
// は後で使用されます
$t = new Template(" /home/ mydir/mytemplates/");
// $t という名前のテンプレート オブジェクトを作成します
$t->set_file("MyFileHandle","MyTemplate.ihtml");
// MyFileHandle = テンプレート ファイルを設定します
$t->set_var("some_color",$my_color);
//テンプレート変数 some_color = $my_color の値を設定します
$t->parse("MyOutput","MyFileHandle");テンプレート変数 MyOutput = 分析されたファイル
$t->p("MyOutput");
// MyOutput の値 (分析されたデータ) を出力します
?>
最初の行は include 命令です。 PHPLIB テンプレート機能。もちろん、PHPLIB はテンプレート以外にも機能しますが、テンプレート機能だけを使用したい場合は、tmplate.inc をインクルードするだけです (template.inc は PHPLIB のファイルの 1 つです)。 PHPLIB テンプレートはオブジェクト指向プログラミングを使用するため、次に行うことはテンプレート オブジェクトを作成することです。コード "/home/mydir/mytemplates/" ); >
新しいテンプレート オブジェクト $t を作成します。この $t オブジェクトは、PHP スクリプト内のすべてのテンプレート関数およびその他のコードを処理するために使用されるハンドルです。必要に応じて、他のテンプレート オブジェクト (それぞれ独自のテンプレート変数名前空間を持つ) を作成することもできますが、1 つで十分です。テンプレートのコンストラクター呼び出しのパス (「/home/mydir/mytemplates/」) は、テンプレートが配置されているルート ディレクトリを設定するために使用されますが、設定しない場合は、デフォルトで PHP スクリプトが配置されているディレクトリになります。同じです。
次に、set_file() を呼び出して、MyTemplate.ihtml とリンクする「MyFileHandle」という名前のハンドルを定義します (テンプレートは、parse() が呼び出されるまで実際にはロードされません)。ちなみに、PHPLIBテンプレートのテンプレートファイル名の接尾辞は.ihtmlであるのが慣例となっており、.htmlや.tplなどの接尾辞を使用することができます。次に、set_var() を呼び出して、テンプレート変数 some_color を $my_color の値 (値は「blue」) に設定します。これは、parse を呼び出すと、テンプレート内のすべての {some_color} が単語「blue」に置き換えられることを意味します。 ()。次に、parse() を呼び出します。これにより、分析のために MyFileHandle (MyTemplate.ihtml) がロードされ、すべてのテンプレート変数 ("{a variable}") がテンプレート変数の値に置き換えられ、分析結果が MyOutput に入れられます。最後に解析されたテキストを出力する p("MyOutput") が呼び出されない限り、結果は Web サーバーに出力されません。