プログラマー (おそらくあなた) とデザイナーの両方が作成する Web サイトの作成に直面していますか?お互いにとって仕事を楽にする方法を知りませんか?答えを教えましょう。FastTemplate を使用すると、サイトをカスタマイズしやすくなります。
なぜ FastTemplate を使用する必要があるのか疑問に思われるかもしれません。
· サイト全体の外観を数秒で変更できます · 抽象的なプログラミング、ジャンク HTML コードは不要 · デザイナーはすべての「わかりにくい」コードを気にする必要がありません · 驚くほど高速です · 古いテンプレート (通常のフォームと比較して) の再利用が簡単です
FastTemplateこれは、同じ名前の Perl パッケージ (CPAN にあります) から派生したものです。 PHP 版はホームページからダウンロードできます (このサイトのダウンロード アドレスは http://www.phpe.net/downloads/1.shtml)。必要なのはクラス ファイル (class.FastTemplate.php) の 1 つだけです。
まず、テンプレートを使用してページを生成することと、それを単にエコーまたは印刷することの違いについて説明します。
echo/print メソッドを単に使用することは、短いスクリプトを作成するのには最適ですが、より適切な編成やカスタマイズには役立ちません。一方、テンプレートを使用すると、パラメーターを変更するだけで多言語サイトを作成できます。彼らはあなたに、自分がしなければならないことにもっと気を配るよう促すことができます。
コーディングを始める前に考えることを恐れないでください。時間はかかるかもしれませんが、プロジェクトが成長するにつれてコストは回収されます。
では、FastTemplate を適用するにはどうすればよいでしょうか?まず、単純な呼び出しを行う必要があります。
<?php $tpl=new FastTemplate ("path");
?>
すべてのテンプレート ファイルが保存されているディレクトリへのパスを渡します。パラメータの割り当てやページの生成などに使用できるオブジェクトを返します。
FastTemplate は、大きなページが多数の小さな部分で構成されているという前提に基づいています。各部分には固有の名前が付いています。最も小さな部分は、それを一意の名前を持つ通常のテキスト文字列に割り当てることです。これは <?php 経由で実行できます
$tpl->assign(NAME, "テキスト");
?>
完了します。これで、テンプレートの 1 つに {NAME} が含まれている場合、FastTemplate はその意図を認識します。
さらに、FastTemplate は、テンプレートを呼び出す方法を認識する必要があります。連想配列を渡す必要があります(連想配列)
配列) から <?php $tpl->define() ?>
ヒントを与えに来てください。
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
これらの割り当てにより、foo と bar にそれぞれ異なるファイル (foo.tpl および bar.tpl という名前) が与えられます。
次に、FastTemplate でテンプレート foo 内のすべての {MACROS} を対応する値に置き換えます。コマンド
<?php を
発行することにより、
$tpl->parse(PAGECONTENT, "foo");
?>
達成するために。 このコマンドは、テンプレート「foo」のコンテンツを PAGECONTENT に割り当てます。 もちろん、テンプレート バーはメイン ページ定義であり、FastTemplate でそれを置き換える必要があるため、まだ作業は完了していません。
{PAGECONTENT} マクロ。また、次のように PAGETITLE に値を割り当てる必要があります: <?php
$tpl->assign(PAGETITLE, "FooBar テスト");
$tpl->parse(MAIN, "bar");
?>
簡単ですね。あとはそれを出力するだけです: <?php
$tpl->FastPrint(MAIN);
?>
次の 3 つのファイルは、実際の演習のより詳細な説明を示しています。実生活ではこのテクノロジーなしではどうやって生きていけばいいのかわかりません。
より短い時間でより多くの仕事ができるので、デザイナーは満足し、上司も笑顔になるでしょう。
bar.tpl <!-- bar.tpl -->
<HTML>
<HEAD><TITLE>フィーチャーワールド - {PAGETITLE}</TITLE></HEAD>
<ボディ BGCOLOR=黒 テキスト=白>
<H1>{ページタイトル}</H1>
{ページコンテンツ}
</BODY>
</HTML>
foo.tpl <!-- foo.tpl -->
明らかに何も行われていませんでした。 {名前}を参照してください。
デモ.php3 <?php
include "class.FastTemplate.php3";
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));
$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "ようこそ!");
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");
$tpl->FastPrint(MAIN);
?>
テーブル全体の作成 単一行のテンプレートからテーブル全体を生成する方法を示す短い例も作成しました。 HTML ドキュメントを直接変更する必要がないため、効率的です。
テンプレートのコンテンツをすでに定義されている一意の名前に追加することによって、HTML テーブルを作成します。これは呼び出すことで実行できます
$tpl->parse() の場合、これを実現するにはテンプレート名の前に「.」を追加します。 <?php
//テンプレート foo の内容を TPL1 に代入する
$tpl->parse(TPL1, "foo");
// TPL1 の後にテンプレートバーのコンテンツを添付します。
$tpl->parse(TPL1, ".bar");
?>
page.tpl
<HTML>
<HEAD><TITLE>フィーチャーワールド - {PAGE_TITLE}</TITLE></HEAD>
<ボディ BGCOLOR=黒 テキスト=白>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODY>
</HTML>
テーブル.tpl
<TABLE>
<TR> <TH>名前</TH> <TH>サイズ</TH> </TR>
{TABLE_ROWS}
</TABLE>
テーブル行.tpl
<TR>
<TD>{ファイル名}</TD>
<TD>{ファイルサイズ}</TD>
</TR>
yad.php3
<?php
「class.FastTemplate.php3」を含める
関数 InitializeTemplates() {
グローバル $tpl;
$tpl = 新しい FastTemplate( ".");
$tpl->define( array( page => "page.tpl",
テーブル => "table.tpl",
table_row => "table_row.tpl" ) );
関数
ReadCurrentDirectory() {
グローバル $tpl;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(ファイル名, $ファイル名);
$tpl->assign(FILESIZE, filesize($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
閉じられたir($ハンドル);
$tpl->parse(PAGE_CONTENT, "テーブル");
関数 PrintPage($title)
{
グローバル $tpl;
$tpl->assign(PAGE_TITLE, $title);
$tpl->parse(FINAL, "ページ");
$tpl->FastPrint(FINAL);
InitializeTemplates()
;
ReadCurrentDirectory();
Printpage( "さらに別のデモ");
?>
速度の議論
「それはそれで素晴らしいことです。しかし、私のサイトの速度には影響しませんか?
いいえ、あなたのサイトはおそらく速くなります。」と思われるかもしれません。単純な理由が 1 つあります。プログラマーはアプリケーションの設計とコードの作成に気を配るので、コードの効率が向上し、同じタスクをより簡単かつ迅速に処理できるようになります。したがって、プロジェクトで FastTemplate の使用を検討する必要がある理由として、上記の理由のリストに別の理由を追加することもできます。
既存の Web サイトを変換したいだけの場合は、パフォーマンスの成功に気付かない可能性があります。この状況では役立つため、PHP で正規表現バッファリングを使用することをお勧めします。 FastTemplate はすべてのマクロに正規表現を使用するため、各正規表現は 1 回だけコンパイルされ、速度への影響は無視できます。