ホームページ >php教程 >php手册 >PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する (3)

PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する (3)

WBOY
WBOYオリジナル
2016-06-13 12:41:44943ブラウズ

ページ要素の重複を避ける


「これはとても良いことだ」と思うかもしれません。「私の Web サイトは主に多くの静的ページで構成されており、それらの共通部分を削除できるようになりました。」これらの共通部分を更新するのは面倒ですが、将来的にはテンプレートを使用して、メンテナンスが容易な統一されたページ レイアウトを作成できます。「しかし、それはそれほど単純ではありません。」問題を明らかにします。


上の例を考えてみましょう。この例には実際には example.php ページが 1 つしかありません。Web サイト全体のすべてのページを生成できるのは、URL 内のクエリ文字列を使用してデータベースなどの情報ソースからページを動的に構築しているためです。


私たちのほとんどは、必ずしもデータベースをサポートしていない Web サイトを運営しています。私たちの Web サイトの大部分は静的なページで構成されており、PHP を使用して検索エンジンやフィードバック フォームなどの動的な機能をあちこちに追加しています。では、この種の Web サイトにテンプレートを適用するにはどうすればよいでしょうか?


最も簡単な方法は、各ページの PHP ファイルをコピーし、PHP コード内のコンテンツを表す変数を各ページの適切なページ コンテンツに設定することです。たとえば、home、about、product という 3 つのページがあるとします。それぞれを生成するために 3 つのファイルを使用できます。これら 3 つのファイルの内容は次のようになります。



// home.php
require('class.FastTemplate.php'); >$tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm' ,
'leftnav' => 'leftnav.htm' ) );

$content = "

ようこそ


$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER ', 'ヘッダー');
$tpl->parse('LEFTNAV', 'leftnav');
$tpl->parse('MAIN', 'main'); ->FastPrint('MAIN');

?>



このアプローチには明らかに 3 つの問題があります。テンプレートを含むこの複雑な PHP コードを複製すると、共通のページ要素を複製するだけでなく、ファイルに HTML と PHP コードが混在するため、コンテンツ変数に値を割り当てることが非常に困難になります。多数の特殊文字。


この問題を解決する鍵は、PHP コードと HTML コンテンツを分離することです。ファイルからすべての HTML コンテンツを削除することはできませんが、PHP コードの大部分を移動することはできます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。