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)
オープンソース版のデータメカニズムの改善Kubernetes 上の Spark の概要を知りたい場合...
2012年は、終末の予言を超えて新たな生命をもたらす、特別な年になるはずでした。 2012 年は多く...
[51CTO.comより引用] グローバル化時代の到来とともに、熾烈な競争の中で企業が成功するには「...
edgenat では、春のプロモーションを実施しています。四半期ごとの支払いの場合は 30% オフ、...
データセンター内のデータは安全ですが、AWS などのクラウド コンピューティング プロバイダーはセキ...
12月20日、中国聯通とテンセントは「2022年中国聯通パートナー会議」で新たな戦略協力協定に署名し...
従来の考え方では、ユーザーがサイトの製品ページに長く滞在すればするほど、コンバージョン率が高くなると...
国際的に権威のある分析機関であるForresterが「Now Tech:中国における予測分析と機械学...
企業が公式Weiboアカウントを開設し、マーケティング宣伝を行うことは、非常に重要なマーケティングプ...
1. 周洪一:盗作とバンドルは中国のインターネットに深刻なダメージを与えた4月16日午後、360カン...
現在、あらゆる面からのデータから判断すると、618カーニバルの人気はタオバオに集中している。では、こ...
imidc は、香港データセンターの香港 VPS と香港独立サーバーの帯域幅をアップグレードした後、...
5月にウェブサイト間で最も話題になったのは、Baiduによるウェブサイトの外部リンクに対する反撃だろ...
zgovpsは、日本の大阪で高性能でソフトバンク回線を備えた日本のVPSを提供しています。Hostc...
vps.us は 11 か月間 Hostcat に登場していません。今回はすべての VPS に適用さ...