テンプレートとは何なのか疑問に思っている場合は、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 Value
$t->parse("MyOutput","MyFileHandle");
// テンプレート変数 MyOutput = 解析されたファイルを設定
$t->p("MyOutput");
// MyOutput の値を出力します私たちの分析されたデータ)
?>----------------------------------------------------- - --------------------------------------
最初の行は include ディレクティブで、Provide に使用されます。 PHPLIB テンプレート機能。もちろん、PHPLIB はテンプレート以外にも機能しますが、テンプレート機能だけを使用したい場合は、tmplate.inc をインクルードするだけです (template.inc は PHPLIB のファイルの 1 つです)。 PHPLIB テンプレートはオブジェクト指向プログラミングを使用するため、次に行うことはテンプレート オブジェクトを作成することです。コード
は新しいテンプレート オブジェクト $t を作成します。この $t オブジェクトは、PHP スクリプト内のすべてのテンプレート関数およびその他のコードを処理するために使用されるハンドルです。必要に応じて、他のテンプレート オブジェクト (それぞれ独自のテンプレート変数名前空間を持つ) を作成することもできますが、1 つだけで十分です。テンプレートのコンストラクター呼び出しのパス (「/home/mydir/mytemplates/」) は、テンプレートが配置されているルート ディレクトリを設定するために使用されますが、設定しない場合は、デフォルトで PHP スクリプトが配置されているディレクトリになります。同じです。 $t = new Template ("/home/mydir/mytemplates/" ); ?> 次に、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 サーバーに出力されません。
http://www.bkjia.com/PHPjc/532094.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532094.html技術記事テンプレートとは何なのか疑問に思っている場合は、まず、Sascha Schumann が書いた優れた記事「Templates - Why and how to use them in PHP3」をご覧ください...