1.4.2 エントリーファイル(1) このセクションでは、まずシステムの複数のリクエスト エントリ設計によって生じる不便さを紹介し、次に単一のリクエスト エントリ設計パターンの実装原則を紹介します。このセクションの学習目標は、単一エントリ ファイル設計パターンの利点を明確にし、将来の開発プロジェクトで複数のエントリ ポイントを回避することです。 1. エントリーファイルのデザイン システム内でアクセスできる PHP ファイルはすべてエントリ ファイルと呼ばれます。異なるユーザー要求が Web サーバー内の異なる PHP ファイルに直接対応する場合は、システムはマルチエントリ設計になります。 PHP を初めて学習するときは、通常、プロジェクトのために次のことを行います。 index.php - ホームページ list.php?page=5 ——コンテンツ一覧ページ info.php?id=12 ——コンテンツ詳細ページ login.php ——ユーザーログインページ または、セクション 1.4.1 で MVC フレームワーク パターンを実装した後、DefaultController.php や SiteController.php などのさまざまなコントローラー クラス ファイルにアクセスします。 これらのプロジェクトには複数のエントリ ファイルがあります。プロジェクトの規模が拡大し続けると、システムディレクトリ構造の混乱、その後のメンテナンスの難しさ、プログラムの脆弱性の容易な露出、システムの統一管理の不便さなど、複数のエントリの設計上の欠陥がますます顕著になります。複数エントリ設計によって発生する多くの問題を回避するために、単一エントリ設計モードを使用できます。単一エントリ設計パターンでは、1 つのファイルがすべての HTTP 要求を処理します。つまり、DefaultController.php、SiteController.php、またはその他のコントローラー クラス ファイルなど、任意のコントローラー ファイルにアクセスします。各リクエストは、エントリ ファイル index.php などのサーバー上の同じファイルを指します。このファイルは、図 1-6 に示すように、URL を解析し、最終的にアクセスするページにリダイレクトする役割を担います。 PHP シングル エントリ モードは現在、大規模な Web アプリケーション開発モデルとして人気があります。 Zend、ThinkPHP、Yii など、現在人気のある PHP 開発フレームワークの一部は、すべてシングル エントリ モードを採用しています。 単一エントリ ファイル モードを使用する利点は次のとおりです。 より安全。単一エントリ モードでは、ユーザーに単一のリクエスト エントリが提供され、リクエストをフィルター処理したり、セキュリティ処理コードを追加したりできます。従来のマルチリクエストエントリモードでは、各ファイルにセキュリティ処理プログラム ブロックを追加する必要があります。 高度なモジュール性。開発者は開発するモジュールにのみ集中する必要があります。これらすべてはエントリ ファイルによって調整されるため、プログラムが正常に実行されるかどうかを心配する必要はありません。 統一された方法で簡単に管理でき、高度なカスタマイズが可能です。システムのすべてのモジュールはエントリ ファイルによって一様に管理され、モジュール自体がなくても任意のモジュールを有効化または無効化できます。 2. エントリファイルにURL解析を実装する 上記のエントリ ファイルの URL 解析は、エントリ ファイルが元の要求を対応する処理コントローラーに転送して、特定のビジネス処理を完了することを意味します。たとえば、次の URL アドレスがあります。
カスタム フレームワークは Yii フレームワークを模倣し、パス (PATH) URL モード アクセス ルールを採用します。パス URL モードは、ディレクトリ階層の考え方を採用しています。パス形式は簡潔で、URL 解析の効率は高いです。 URL の形式は次のとおりです: http://<hostname>/appname/index.php?r= controllerID/actionID 上記のすべての URL が解決された後、SiteController コントローラーの actionIndex() メソッドにアクセスすることを期待します。 URL 解析実行プロセスを図 1-7 に示します。まず、エントリ ファイルにアクセスして、リクエスト URL のパラメータを分析します。 「r」パラメータがない場合、デフォルトで SiteController の actionIndex() メソッドにアクセスします。それ以外の場合は、SiteController の actionIndex() メソッドは "r" パラメータに基づいてアクセスされます。つまり、すべてのアクセスは URL パラメータに基づいて均一に解析され、スケジュールされます。 エントリ ファイル index.php 内のコード実装は次のとおりです。
上記のプログラムから、デフォルトのコントローラーは SiteController であり、デフォルトの実行メソッドは actionIndex() メソッドであることがわかります。コントローラー クラス名の最初の文字は大文字で、「Controller」で終わり、コントローラー クラス ファイルは controllers フォルダーに保存する必要があります。アクション メソッド名には「action」という接頭辞を付け、アクション ID の最初の文字を大文字にする必要があります。このプログラムではファイル名やクラス名が使用されるため、コーディング標準の重要性も理解できます。同様に、これから学習する Yii フレームワークの開発中は、特定のコーディング標準に従う必要があります。たとえば、クラスに名前を付ける場合は、camelCase を使用します。つまり、各単語の最初の文字を大文字にして、間にスペースを入れずにつなげます。変数名とメソッド名は、クラス名と区別するために、最初の単語をすべて小文字にし、残りの単語の最初の文字を大文字にする必要があります (例: $basePath および runController())。プライベート クラス メンバー変数の場合は、$_actionList のように、名前のプレフィックスとしてアンダースコアを使用することをお勧めします。 ヒント: PHP 言語で開発されたフレームワークが共通のコーディング スタイルに従うようにするために、いくつかのフレームワークの開発者が 2009 年に PHP-FIG (PHP Framework Interoperability Group) を結成し、現在では 20 名を超えるメンバーに拡大しています。 エントリ ファイルを実装した後のフレームワーク実行プロセスを図 1-8 に示します。 1. ユーザーは URL にアクセスするためのリクエストを送信し、Web サーバーはエントリ ファイル index.php を実行してこのリクエストを処理します。 2. エントリ ファイルは、URL 解析を完了し、URL 要求に基づいてコントローラーを作成し、アクションを呼び出してユーザー要求を処理する役割を担います。 3. コントローラーはモデルインスタンスオブジェクトを呼び出して、データベースからデータを読み取ります。 4. ビューをレンダリングします。 5. ビューはモデルからデータを読み取って表示します。 6. アクションはビューのレンダリングを完了し、ユーザーに返します。 3. シングルエントリモードのサーバー環境構成 シングル エントリ モードを実装した後、エントリ ファイル以外の PHP ファイル (セキュリティ上重要なすべての PHP ファイル) がアプリケーション ルート ディレクトリにアクセスできないようにする必要があります。実践により、Apache サーバーのディレクトリ レベルの構成ファイル .htaccess ファイルを使用してディレクトリを保護する方が、他の方法を使用するよりも効果的で安全であることが証明されています。さらに重要なのは、.htaccess を使用した設定はプログラムを書かなくても実行でき、具体的な操作も比較的簡単であることです。 (1)ディレクトリレベルの設定ファイル.htaccess .htaccess は、Apache サーバーの構成に関連するいくつかの指示が含まれるプレーン テキスト ファイルです。これは、httpd.conf ファイルなどの Apache のサイト構成ファイルに似ています。 .htaccess 構成ファイルは、このディレクトリとそのすべてのサブディレクトリにのみ適用されるという点で、httpd.conf 構成ファイルとは異なります。さらに、httpd.conf は Apache サービスが起動されたときに読み込まれますが、.htaccess はユーザーがディレクトリにアクセスしたときにのみ読み込まれます。 .htaccess ファイルを変更する場合、Apache サーバーを再起動する必要はありません。 .htaccess の機能には、Web ページのパスワードの設定、エラー発生時に表示されるファイルの設定、ファイルの読み取り禁止、ファイルのリダイレクトなどがあります。 ディレクトリのサーバー構成を変更する必要があり、サーバー システムに対するルート権限を持っていない場合は、.htaccess ファイルを使用する必要があります。サーバー管理者が頻繁に構成を変更したくない場合は、ユーザーが .htaccess ファイルを通じて自分で構成を変更できるようにすることができます。これは、1 台のマシンに複数のユーザー サイトが提供され、ユーザーが自分で構成を変更することが予想される場合に特に当てはまります。通常、一部の .htaccess 機能はユーザー自身で設定できます。 知らせ: .htaccess は完全なファイル名であり、***.htaccess やその他の形式ではありません。 ユーザーが .htaccess ファイルを使用できるようにするにはどうすればよいですか? Apache サーバーの構成ファイル httpd.conf で、サーバーのルート ディレクトリの構成情報を見つけます。
気に入った友達はWeChatアカウントを追加できます: 51CTO 読書チャンネル QR コード
|
<<: 1.4.1 MVCフレームワークパターンの実装(2)
1.オンライン音楽は7月以降に完全有料化される見込みで、中小規模の音楽サイトが影響を受ける北京ビジネ...
ウェブサイトを構築するとき、私たちはみな、ウェブサイトをもっと良くしたいと願っています。要件がどんど...
編集者注: この記事の著者は、Tencent Weibo Open Platform の Xu Zh...
[[345506]]簡単に自己紹介をさせてください。私は普通の会社員女子です。 [[345507]]...
ブランドマーケティング業界にとって、今年は不振の年でした。年間を通じて特に人気の高い広告はなく、全国...
ロシアのサーバー業者admanは現在、自社のVMware仮想VPS(2年間の支払いが必要)を50%割...
6月28日の事件は、多くのウェブマスターの友人を今も悩ませています。ウェブサイトは破壊され、回復の兆...
spinserversは、2009年に設立された新しいブランドですが、実は25年間運営している、弊社...
クラウドは非常に強力なツールですが、絶対確実というわけではありません。 Netflix、Amazon...
ウェブサイトのポジショニングとは、大学入試の願書に記入するように、ウェブサイトの将来の発展方向をポジ...
以前、私はウェブサイトのプロモーションに関する 2 つの記事、「SEO 最適化に別れを告げる: フォ...
企業顧客の高水準のネットワーク要件を満たすため、Alibaba Cloudは12月13日にネットワー...
Googleと360の協力は、分離と再統合の過程を経てきました。360 Browserが初めてGoo...
2022 年 8 月 2 日、Amazon Web Services は、完全に管理されたワイドエリ...
浙江省金華市の記者徐潔もう一つの「消費還元」オンラインショッピングプラットフォームがトラブルに巻き込...