検索
ホームページバックエンド開発PHPチュートリアルPHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する_PHP チュートリアル

PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する_PHP チュートリアル

Jul 21, 2016 pm 04:11 PM
php作るどうやって改善するフレームテンプレート使用構造ネットできた合格静的


テンプレートを使用すると、Web サイトの構造を改善できます。この記事では、PHP 4 の新機能とテンプレート クラスを使用して、多数の静的 HTML ページで構成される Web サイトのページ レイアウトをテンプレートを巧みに使用して制御する方法について説明します。

概要:

======================================

独立した機能とレイアウト


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


静的ウェブサイト用のテンプレートフレームワーク

================================ ================================================= ================================================= ========
機能とレイアウトを分離する

まず、テンプレートを適用する 2 つの主な目的を見てみましょう:

機能 (PHP) とレイアウト (HTML) を分離する

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

最初の目的は、最も話題になっている目的です。これは、あるプログラマー グループがページのコンテンツを生成する PHP スクリプトを作成し、別のデザイナー グループがページの最終的な外観を制御する HTML とグラフィックスをデザインする状況を想定しています。機能とレイアウトを分離するという基本的な考え方は、これら 2 つのグループの人々が独立したファイルのセットを作成して使用できるようにすることです。プログラマーは、PHP コードのみを含むファイルのみを気にする必要があり、PHP コードの外観を気にする必要はありません。ページ設計者は、ページに埋め込まれた PHP コードが壊れることを心配することなく、最も使い慣れたビジュアル エディターを使用して独自のページ レイアウトを設計できます。

PHP テンプレートに関するチュートリアルをいくつか見たことがあれば、テンプレートがどのように機能するかをすでに理解しているはずです。単純なページ パーツを考えてみましょう。ページの上部はヘッダー、左側はナビゲーション バー、残りはコンテンツ領域です。この種類の Web サイトには、次のテンプレート ファイルを含めることができます:



テンプレートの例



{HEADER}
{LEFTNAV}




PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する_PHP チュートリアル



Foo

Bar

これらのテンプレートからページがどのように構築されているかを確認できます。メイン テンプレートはページ全体のレイアウトを制御し、leftnav テンプレートはページの共通要素を制御します。ページ。中括弧「{}」内の識別子はコンテンツのプレースホルダーです。テンプレートを使用する主な利点は、インターフェイス設計者がフォントの設定、色やグラフィックの変更、ページのレイアウトの完全な変更など、希望に応じてこれらのファイルを編集できることです。これらのファイルには HTML コードのみが含まれており、PHP コードは含まれていないため、インターフェイス設計者は、通常の HTML エディタまたは視覚化ツールを使用してこれらのページを編集できます。 PHP コードはすべて別のファイルに保存されます。このファイルは、ページ URL によって実際に呼び出されます。 Web サーバーは PHP エンジンを通じてファイルを解析し、結果をブラウザに返します。一般に、PHP コードは、データベースへのクエリや特定の計算の実行など、常にページ コンテンツを動的に生成します。以下に例を示します。

// example.php
require('class.FastTemplate.php');
$tpl = new FastTemplate('.');
$tpl->define( array ( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' => 'leftnav.htm' ) ); ここに PHP コードを設定します $適切なページコンテンツを含むコンテンツ

$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header'); ', 'leftnav');
$tpl->parse('MAIN', 'main');

?> これが人気の FastTemplate です。 template クラスが使用されますが、基本的な考え方は他の多くのテンプレート クラスでも同じです。まず、クラスをインスタンス化し、テンプレート ファイルの場所と、どのテンプレート ファイルがページのどの部分に対応するかを指示します。次に、ページ コンテンツを生成し、その結果をコンテンツ識別子に割り当てます。次に、各テンプレート ファイルを順番に解析します。テンプレート クラスは必要な置換操作を実行し、最後に解析結果がブラウザに出力されます。

このファイルは完全に PHP コードで構成されており、HTML コードが含まれていません。これが最大の利点です。 PHP プログラマーは、最終ページを適切にフォーマットするための HTML を生成する方法を気にすることなく、ページのコンテンツを生成するコードの作成に集中できるようになりました。

このメソッドと上記のファイルを使用して、完全な Web サイトを構築できます。 http://www.foo.com/example.php?article=099 など、PHP コードが URL 内のクエリ文字列に基づいてページ コンテンツを生成する場合、これに基づいて完全な雑誌 Web サイトを構築できます。

テンプレートの使用には 2 番目の利点があることは簡単にわかります。上の例に示すように、ページの左側にあるナビゲーション バーは別のファイルとして保存されています。Web サイトのすべてのページの左側にあるナビゲーション バーを変更するには、このテンプレート ファイルを編集するだけです。 ページ要素の重複を避けます
「これは本当に良いことだ」と思うかもしれません。「私の Web サイトは主に多数の静的ページで構成されています。これで、更新するのが非常に面倒になる公開部分をすべてのページから削除できるようになりました。将来的には、テンプレートを使用して、管理が容易な統一されたページ レイアウトを作成できるようになります。 「しかし、物事はそれほど単純ではありません。「多数の静的ページ」が問題を示しています。

上記の例を検討してください。この例には、実際には example.php ページが 1 つしかありません。全体のすべてのページを生成できる理由Web サイトは、URL 内のクエリ文字列を使用して、データベースなどの情報ソースからページを動的に構築するためです。検索エンジンやフィードバック フォームなどの動的機能をあちこちに追加するには、この種の Web サイトにテンプレートを適用するにはどうすればよいでしょうか? 最も簡単な方法は、PHP ファイルを各ページにコピーすることです。 PHP コード内のコンテンツを表す変数を各ページの適切なページ コンテンツに設定します。たとえば、 home、about、product という 3 つのページがあるとします。それぞれのコンテンツを生成するために 3 つのファイルを使用できます。これら 3 つのファイルは次のようになります。


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

ようこそ


PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する_PHP チュートリアル

このウェブサイトを気に入っていただければ幸いです

";
$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header');
$tpl->parse('LEFTNAV' , 'leftnav'); 'main');
$tpl->FastPrint('MAIN');

?>

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

この問題を解決する鍵は、PHP コードと HTML コンテンツを分離することです。ファイルからすべての HTML コンテンツを削除することはできませんが、PHP コードの大部分は削除できます。 静的ウェブサイト用のテンプレート フレームワーク

まず、以前と同様に、ページのすべての共通要素とページ全体のレイアウトのテンプレート ファイルを作成し、すべてのページから共通部分を削除し、ページ コンテンツのみを残します。次の 3 行の PHP コード:



pageStart('ホーム');

こんにちは

あなたはこのウェブサイトが好きです





?>

このメソッドは、基本的に前述のさまざまな問題を解決します。ファイル内には現在 PHP コードが 3 行しかなく、その中にはテンプレートを直接参照していないため、このコードを変更する可能性は非常に低いです。また、HTML コンテンツは PHP マークアップの外側にあるため、特殊文字の処理に問題はありません。これら 3 行の PHP コードをすべての静的 HTML ページに簡単に追加できます。

require 関数は、必要なテンプレート関連の PHP コードをすべて含む PHP ファイルを導入します。 pageStart 関数はテンプレート オブジェクトとページ タイトルを設定し、pageFinish 関数はテンプレートを解析して結果を生成し、ブラウザに送信します。

これはどのようにして達成されるのでしょうか? pageFinish 関数が呼び出されるまで、ファイル内の HTML がブラウザに送信されないのはなぜですか?答えは、ブラウザーに出力されたコンテンツをバッファーにインターセプトできるようにする PHP 4 の新機能にあります。 prepend.php の具体的なコードを見てみましょう。 $ tpl = new FastTemplate('.');
$tpl->define( array( 'main' => 'main.htm',
'header' => 'header.htm',
'leftnav' = > 'leftnav.htm' ) );
$tpl->assign('TITLE', $title);
}

function pageFinish() {
$content; ob_get_contents ();
$tpl->assign('CONTENT', $content);
$tpl->parse('HEADER', 'header'); ' LEFTNAV', 'leftnav');
$tpl->parse('MAIN', 'main');
$tpl->FastPrint('MAIN'); pageStart 関数は、まずテンプレート インスタンスを作成して設定し、次に出力キャッシュを有効にします。この後、ページ自体のすべての HTML コンテンツがキャッシュに入ります。 pageFinish 関数は、キャッシュからコンテンツを取り出し、これらのコンテンツをテンプレート オブジェクトに指定し、最後にテンプレートを解析して完成したページを出力します。
PHP を使用して静的 Web サイト用のテンプレート フレームワークを作成する_PHP チュートリアル

これは、テンプレート フレームワーク全体の作業プロセス全体です。まず、Web サイトの各ページに共通の要素を含むテンプレートを作成し、次にすべてのページから共通のページ レイアウト コードをすべて削除し、変更する必要のない 3 行の PHP コードに置き換えてから、FastTemplate クラス ファイルを追加します。 php をインクルード パスに追加すると、ページ レイアウトを一元管理できる Web サイトが得られ、信頼性と保守性が向上し、Web サイト レベルでの大規模な変更が非常に容易になります。

この記事のダウンロード パッケージには動作するサンプル Web サイトが含まれており、そのコード コメントは前のコード コメントよりも詳細です。 FastTemplate クラスは http://www.thewebmasters.net/ にあります。最新バージョン番号は 1.1.0 で、クラスが PHP 4 で正しく動作することを確認するための小さなパッチがそこにあります。この記事のダウンロード コード内のクラスは、このパッチによって修正されています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/314011.html技術記事テンプレートを使用すると、Web サイトの構造を改善できます。この記事では、PHP 4 の新機能とテンプレート クラスを使用して、多数の静的な HTML ページで構成される Web サイトのページ レイアウトをテンプレートを上手に使用して制御する方法を説明します...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
セッションを保存するためにデータベースを使用することの利点は何ですか?セッションを保存するためにデータベースを使用することの利点は何ですか?Apr 24, 2025 am 12:16 AM

データベースストレージセッションを使用することの主な利点には、持続性、スケーラビリティ、セキュリティが含まれます。 1。永続性:サーバーが再起動しても、セッションデータは変更されないままになります。 2。スケーラビリティ:分散システムに適用され、セッションデータが複数のサーバー間で同期されるようにします。 3。セキュリティ:データベースは、機密情報を保護するための暗号化されたストレージを提供します。

PHPでカスタムセッション処理をどのように実装しますか?PHPでカスタムセッション処理をどのように実装しますか?Apr 24, 2025 am 12:16 AM

PHPでのカスタムセッション処理の実装は、SessionHandlerInterfaceインターフェイスを実装することで実行できます。具体的な手順には、次のものが含まれます。1)CussentsessionHandlerなどのSessionHandlerInterfaceを実装するクラスの作成。 2)セッションデータのライフサイクルとストレージ方法を定義するためのインターフェイス(オープン、クローズ、読み取り、書き込み、破壊、GCなど)の書き換え方法。 3)PHPスクリプトでカスタムセッションプロセッサを登録し、セッションを開始します。これにより、データをMySQLやRedisなどのメディアに保存して、パフォーマンス、セキュリティ、スケーラビリティを改善できます。

セッションIDとは何ですか?セッションIDとは何ですか?Apr 24, 2025 am 12:13 AM

SessionIDは、ユーザーセッションのステータスを追跡するためにWebアプリケーションで使用されるメカニズムです。 1.ユーザーとサーバー間の複数のインタラクション中にユーザーのID情報を維持するために使用されるランダムに生成された文字列です。 2。サーバーは、ユーザーの複数のリクエストでこれらの要求を識別および関連付けるのに役立つCookieまたはURLパラメーターを介してクライアントに生成および送信します。 3.生成は通常、ランダムアルゴリズムを使用して、一意性と予測不可能性を確保します。 4.実際の開発では、Redisなどのメモリ内データベースを使用してセッションデータを保存してパフォーマンスとセキュリティを改善できます。

ステートレス環境(APIなど)でセッションをどのように処理しますか?ステートレス環境(APIなど)でセッションをどのように処理しますか?Apr 24, 2025 am 12:12 AM

APIなどのステートレス環境でのセッションの管理は、JWTまたはCookieを使用して達成できます。 1。JWTは、無国籍とスケーラビリティに適していますが、ビッグデータに関してはサイズが大きいです。 2.cookiesはより伝統的で実装が簡単ですが、セキュリティを確保するために慎重に構成する必要があります。

セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?Apr 23, 2025 am 12:16 AM

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?Apr 23, 2025 am 12:13 AM

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

session.gc_maxlifetime構成設定とは何ですか?session.gc_maxlifetime構成設定とは何ですか?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでセッション名をどのように構成しますか?PHPでセッション名をどのように構成しますか?Apr 23, 2025 am 12:08 AM

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。