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 コード
|
公会計の存亡の危機とは具体的に何を意味するのでしょうか?はっきり言えば、4つの言葉:交通量の減少。上...
中国IDCレビューネットワークは12月18日に次のように報じた。ドメイン名統計機関WebHostin...
最近、みんなが注目している百度Kステーション事件からしばらく経ちました。6月22日から、百度はいくつ...
中国の VPS 販売業者である fastervm は、ロサンゼルスの C3 データセンター (zen...
はじめに: ウェブサイトの顧客を増やしたい場合は、ウェブサイトをシンプルに保ち、価値あるコンテンツを...
昨日、共同購入ナビゲーションサイト「Tuan800」が共同購入データを発表した。9月末現在、共同購入...
今日は、ecshopの特設ページを最適化するためのヒントをいくつか紹介します。ホームページでは一般的...
「コンテンツは王様、外部リンクは女王様」というのは、SEO 初心者なら誰もが知っていて、最もよく耳に...
当社の最適化プロセスにおいて、最も重要なプロセスの 1 つはキーワードの選択です。キーワードの選択は...
gatenode は、電話番号とオフィスの住所が記載された非常にシンプルな Web サイトです。他に...
記者は5月9日、世界最大のデータベースカンファレンスであるACM SIGMODの公式サイトから、Al...
ウェブサイトを構築した後は、ユーザー エクスペリエンスを生み出すトラフィックが必要です。ウェブサイト...
中小規模の共同購入ウェブサイトは、サービスを放棄して物理的な共同購入に重点を置きたいと考えていますが...
HTML コードに詳しい人なら H1 タグはご存知だと思います。H1 タグを非表示にすることが Ba...
数日前、Taobao ストアを運営している女性の友人が、Weibo で新しい服を宣伝するのを手伝って...