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 コード
|
多くのウェブマスターの友人は、この問題に非常に困惑し、イライラしています。この問題に苦しめられてきた...
[51CTO.com からのオリジナル記事] 現在、OpenStack プライベート クラウド アプ...
21世紀に入り、インターネットという新しいものが何千もの家庭に入り込みました。過去10年間で、業界は...
ADW Europe SL (ADW.es) は、1996 年に Adolfo Richard Do...
月収10万元の起業の夢を実現するミニプログラム起業支援プランYizhiSEO のウェブサイト最適化シ...
年末に、10gbizは皆様にセールを実施します: [1] 香港とロサンゼルスのcn2 giaネットワ...
Baidu の「外部リンクの判断について」の発表以来、新たな影響がもたらされ、ウェブマスターに影響を...
多くの人は、このタイトルが誇張されている、あるいは信じられないと思うかもしれません。確かに、10か月...
トランザクション企業とコンテンツ企業は本来的に異なる2つの種であるという考えは、再検討する価値がある...
現在、国内の状況はトレンドに追随しています。最近、SEOの台頭により、多くのSEOトレーニング機関が...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています従来の企業...
哲学は、自然的知識、社会的知識、思考的知識を一般化し、要約したものです。哲学とは統一であり、それは世...
Hosteons は、新しいシリーズの高防御 VPS を正式に発表しました。デフォルトで 100Gb...
[コアヒント] ストリーミングページを採用することで、モバイルクライアントとウェブバージョンの編集力...
みなさんこんにちは、私は梁磊です。SEO はまだ比較的ホットな業界です。よく初心者から「今から SE...