1.4.3 アプリケーション(フロントコントローラ)(1) セクション 1.4.2 では、元の MVC モデルが改善され、エントリ ファイルに URL 解析が実装されました。ユーザーからのすべてのリクエストは、サーバーの *** アクセス可能なファイルに送信されます。 URL を解析した後、最終的にアクセスするコントローラーにリダイレクトします。しかし、URL パラメータや POST データに必要なチェックや特殊文字のフィルタリング、ログ、アクセス統計など、システムが複雑化、多様化するにつれて、集中的に処理できるタスクをすべてエントリ ファイルで実行すると、コードの重複、混乱、ビジネス ロジックの分散が発生します。したがって、システムコードロジックの複雑さを軽減し、制御システムをさらに集中化し、システムのセキュリティ制御機能、保守性、再利用性、スケーラビリティを向上させるために、このセクションでは、元のMVCモデルを改良し、アプリケーション(フロントエンドコントローラー)の概念を提案し、複雑なシステムでMVCフロントエンドコントローラー開発モデルの最適化戦略を実装します。 1. アプリケーションにURL解析を実装する さまざまなリクエストを処理するための中心を提供するために、フロントエンド コントローラー モードが採用されています。処理作業には、セキュリティ トランザクション、ビューの選択、例外処理、応答コンテンツの生成が含まれます。これらの処理タスクを 1 点に集中させることで、PHP コードの量が大幅に削減され、ビュー層のプログラム ロジックも削減され、異なるリクエスト間で大量のロジック コードを再利用できるようになります。 アプリケーション (フロント コントローラー) の URL 解析機能は、framework/Cweb-Application.php ファイルに実装されています。フローチャートを図1-9に示します。 URL解析コードは次のとおりです。
2. シングルトンモードでのアプリケーションの作成(フロントエンドコントローラ設計パターン) システム内の一部のクラスでは、インスタンスを 1 つだけ持つことが重要です。たとえば、システム内に複数の印刷タスクが存在する可能性がありますが、実行できるのは 1 つのタスクだけです。システムにはウィンドウ マネージャーまたはファイル システムを 1 つだけ設定できます。システムにはタイミング ツールまたは ID (シリアル番号) ジェネレーターを 1 つだけ設定できます。たとえば、Windows ではタスク マネージャーを 1 つしか開くことができません。ウィンドウ オブジェクトを最適化するメカニズムが使用されていない場合は、複数のウィンドウがポップアップ表示されます。これらのウィンドウに表示される内容がまったく同じである場合、それらは重複オブジェクトであり、メモリ リソースを浪費します。これらのウィンドウに表示される内容に矛盾がある場合、それはシステムが特定の瞬間に複数の状態を持っていることを意味し、これは実際の状況と一致しておらず、どれが実際の状態であるかわからないため、ユーザーに誤解を招くことになります。したがって、システム内のオブジェクトの一意性を確保することが非常に重要です (つまり、クラスは 1 つのインスタンスしか持つことができません)。 システム内のアプリケーション (フロントエンド コントローラー) にはインスタンス オブジェクトが 1 つだけ存在し、インスタンス オブジェクトが外部から簡単にアクセスできるようにすることで、アプリケーション インスタンス オブジェクトの数の制御を容易にし、システム リソースを節約できることを期待しています。シングルトンパターンは最適なソリューションの 1 つです。 シングルトン パターンは、よく使用されるソフトウェア設計パターンです。重要なポイントは 3 つあります。まず、クラスにはインスタンスが 1 つしか存在できません。 2 番目に、このインスタンスを独自に作成する必要があります。 3 番目に、このインスタンスをシステム全体に自ら提供する必要があります。 具体的な実装の観点からは、3 つのポイントがあります。まず、シングルトン パターンのクラスはプライベート コンストラクターのみを提供します。 2 番目に、クラス定義にはクラスの静的プライベート オブジェクトが含まれています。 3 番目に、クラスは独自の静的プライベート オブジェクトを作成または取得するための静的パブリック メソッドを提供します。次のコードをframework/CWebApplication.phpに追加します。
3. アプリケーション構成ファイル デフォルトでは、アプリケーションは CWebApplication のインスタンスです。カスタマイズするには、通常、アプリケーション インスタンスを作成するときに、プロパティ値を初期化するための構成ファイルを提供する必要があります。これはコンピューターを組み立てるようなものです。お客様から具体的な構成シートをご持参いただき、ご要望に応じて要件を満たすコンピュータを組み立てます。 CWebApplication はアセンブラであり、構成シートは以下に説明する構成ファイルです。 構成情報は、配列要素として構成ファイルに保存されます。 1 つの要素は 2 つの文字列で構成されるキーと値のペアであり、1 つの文字列はキーであり、もう 1 つの文字列はキーに対応する値です。ほとんどのシステムには、構成ファイルに配置されたいくつかの構成定数があります。システムは、構成ファイルにアクセスして構成定数を取得します。プログラムを変更せずに、設定ファイルを変更することでシステム構成を変更できます。システムは、構成ファイルにいくつかの作業環境情報を保存することもできます。これにより、システムにアクセスするたびに、この情報が各アプリケーションのライフサイクルで実行されます。 これらの設定は通常、別の PHP スクリプト (protected/config/main.php) に保存されます。スクリプトでは、次の方法でこの構成配列を返します。
アプリケーションの構築メソッドに構成ファイル操作のコードを追加します。
気に入った友達はWeChatアカウントを追加できます: 51CTO 読書チャンネル QR コード
|
Baidu が最近行った検索アルゴリズム(青大根アルゴリズム)のアップグレードに関して、このアルゴリ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています一部のニッ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWebホスティングとは何...
ビル管理者は、これまでにない速さで、管理する建物にスマートテクノロジーを導入しています。 Junip...
原題: 国家インターネット情報局が31の違法ウェブサイトを閉鎖北京ニュース(記者 江延馨)工業情報化...
WeChatは開発されてから3年以上が経ち、テキスト、画像、音声、動画からモーメンツ、個人アカウント...
テンセントのオンライン文学への進出は、奇点中国語ネットワークの創設者である羅立氏の人生における突然の...
ガートナーが、クラウドがデータベース管理システム (DBMS) の事実上のソリューションになると宣言...
VMware は、VMware Cloud Foundation (VCF) フルスタック クラウド...
Henghost の米国データセンターは、Henghost の 2 番目の主要なコンピューター ルー...
「絵で読む時代」と言われる現在、動画、音声、画像などインターネット上のさまざまな表現が勢いを増してい...
クラウドこそが未来だと言う人もいます。クラウドを持たないインターネット企業はすぐに遅れをとるでしょう...
著者 |趙雲「クラウドコンピューティングからの脱却」。 DHHは昨年10月下旬にこの計画を提案して以...
人類が誕生して以来、データの記録と処理能力の探求は止まることはありませんでした。たとえば、古代におけ...
greencloudvpsはどうですか?グリーンクラウドはいかがでしょうか? Green Cloud...