ホームページ  >  記事  >  バックエンド開発  >  php.MVC チュートリアル

php.MVC チュートリアル

WBOY
WBOYオリジナル
2016-06-23 14:32:10989ブラウズ

1. はじめに:
ASP、JSP、PHP は WEB 開発の 3 つの主要なテクノロジーであり、これら 3 つのテクノロジーの長所と短所は長い間分析されてきました。 ASP は使いやすく Microsoft の支援を受けており、JSP は Java サポートにより強力であり、PHP はオープンソースでクロスプラットフォームであるというだけのことです。中国では ASP が最も適用範囲が広く、JSP が最も開発の勢いがあり、PHP は不利です。これは、企業のサポートとテクノロジーに関するトレーニングに関係している可能性があります。
会社のプロジェクトの必要性のため、私は PHP をしばらく使ってみて、次の 2 つの点を最も深く理解しました。1 つは、習得が簡単で、すぐに始めることができます。多くの組み込み機能があり、迅速な開発に適しています。第 2 に、学習教材が不足しており、広く普及していないため、英語のドキュメントを読む必要があることがよくあります。
小規模および中規模の WEB アプリケーションでは、LINUX+APACHE+MYSQL+PHP (LAMP) の組み合わせが、ほとんどの Web サイトのソリューションとして使用できるため、システム アーキテクチャの要件が高くなります。成熟したフレームワークのサポートが必要です。JSP の Struts は優れたフレームワークです。中国ではそのアプリケーションが徐々に普及してきていますが、インターネットで調べてみました。この中国語の文書をきっかけにユーザーガイドを翻訳するというアイデアが生まれました。これは、中国で PHP が普及することを願っています。
php.MVC は、PHP Web アプリケーション用のオープンソース フレームワークであり、Web アプリケーションの業界標準である Model-View-Controller (MVC) 設計パターンを実装し、Model2 アーキテクチャに基づくアプリケーション設計を促進します。この開発モデルにより、Web ページやその他の表示コンテンツを内部アプリケーション コードから分離できるため、デザイナーとプログラマーはそれぞれの専門分野に集中しやすくなります。このフレームワークは、コントローラーに単一のエントリ ポイントを提供します。このコントローラーは HTTP リクエストを受け入れ、構成ファイルに基づいて対応するアクションにリクエストを割り当てます。
モデルにはアプリケーションのビジネス ロジックが含まれており、コントローラーはリクエストを処理し、対応する表示コンポーネント (HTML タグと PHP タグを組み合わせたテンプレート ファイル) にリクエストをリダイレクトする役割を果たします。処理結果はクライアントのブラウザに返されるか、SMTP などの別のプロトコルを通じて返されます。
php.MVC は、PHP を使用して Jakarta Struts フレームワークを実装しており、現在、XML パーサーによるアプリケーション構成パラメーターの宣言など、Struts の多くの機能をサポートしています。たとえば、さまざまなビジネス ロジック コンポーネントと対応する表示コンポーネント間のマッピングは、XML 構成ファイルで指定されます。

php.MVC の Web サイトのアドレスは http://www.phpmvc.net です

2 番目、php.MVC シリーズのチュートリアルのインストールと設定

php.MVC は PHP v 4.1.0 を備えた Web サーバーにインストールする必要があります以降

Windows(Apache 2.0.51+php-4.3.9-Win32)

1. http://www.apache.org から対応する Apache バージョンをダウンロードします。

2. http://www.php.net から対応する PHP バージョンをダウンロードします。

3. 対応する php.MVC バージョンを http://www.phpmvc.net からダウンロードします。

4. Web サーバー ディレクトリとして c:www ディレクトリを作成し、Web ルート ディレクトリとして c:webapp を作成します。
独自のディレクトリを定義して、以下の対応する変更を行うこともできます。

5. Apache を c:www にインストールし、ブラウザを開き、アドレス バーに http://localhost と入力して、インストールが成功したかどうかをテストします
注: 他の Web サーバー (IIS 5 など) が既にインストールされている場合は、システムが停止しており、ポート 80 が占有されている場合は、最初にサーバーを停止してください。

6. PHP 圧縮パッケージを c:www に解凍します。

7. c:wwwphp-4.3.9-Win32 ディレクトリにある php.ini-dist を c:winnt などのシステム ディレクトリにコピーし、名前を php.ini に変更します。
php4ts.dll を次のシステム ディレクトリにコピーします。 c:winntsystem32 、 c:wwwApache GroupApache2conf ディレクトリの http.conf ファイルを開き、
ScriptAlias /php/ "c:/www を ScriptAlias /cgi-bin/ の下に追加します。 "c:/www/Apache Group/ Apache2/cgi-bin/" /php-4.3.9-Win32/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"
と変更 DocumentRoot " c:wwwApache GroupApache2htdocs" を DocumentRoot "c:/webapp" に変更します
8. php.MVC 圧縮パッケージを c:webapp

に抽出します

9. c:webappphpmvc ディレクトリの Main.php ファイルを開き、次の内容を変更します

// php.MVC ライブラリのルート ディレクトリを設定します

$appServerRootDir = 'c:webappphpmvc'; // 末尾のスラッシュはありません
// アプリケーションのパスを設定します
$moduleRootDir = 'c:webappphpmvc' // 末尾のスラッシュはありません
// OS タイプを設定します [オプション] [UNIX |WINDOWS|MAC]
// サーバー OS タイプの検出に問題があります。例: patherrors.

$osType = 'WINDOWS';

phpmvc-config.data が存在することを確認します。 c:webappphpmvcWEB-INF ディレクトリには書き込み権限があります。
ブラウザを開き、アドレスバーに http://localhost/phpmvc/Main.php?do=stdLogon と入力して、インストールが成功したかどうかをテストします。

10. インストールに関する詳細なドキュメントについては、http://www.phpmvc.net/docs/installIdx.php?doc=all を参照してください。

3. php.MVC シリーズのチュートリアルのフレームワークの紹介:

1. はじめに
php.MVC は、Model-View-Controller (MVC) 設計パターンを実装し、それに基づくものを奨励するオープンソースの Web アプリケーション フレームワークです。 Model2 アーキテクチャ アプリケーション設計。この開発モデルにより、Web ページやその他の表示コンテンツを内部アプリケーション コードから分離できるため、Web デザイナーとプログラマーはそれぞれの専門分野に集中しやすくなります。
このフレームワークは、コントローラーに単一のエントリ ポイントを提供します。このコントローラーは HTTP リクエストを受け入れ、構成ファイルに基づいて対応するアクションにリクエストを割り当てます。モデルにはアプリケーションのビジネス ロジックが含まれています。リクエストの処理が完了すると、コントローラーは対応する表示コンポーネントを呼び出します。通常はテンプレート ファイルを使用して実装されます。処理結果はクライアントのブラウザに返されるか、SMTP などの別のプロトコルを通じて返されます。
php.MVC は、PHP を使用して Jakarta Struts フレームワークを実装しており、現在、アプリケーション構成パラメーターを設定するための XML パーサーによる XML のオブジェクトへのマッピングなど、Struts の多くの機能をサポートしています。たとえば、さまざまなビジネス ロジック コンポーネントと対応する表示コンポーネント間のマッピングは、XML 構成ファイルで指定されます。

to
フレームワークには、フロントエンド コントローラー、メイン コントローラー、アクション ディストリビューターという 3 つの主要コンポーネントが含まれていることがわかります。
2. 長所/短所

長所:
1. php.MVC は、ソース コードに完全にアクセスできるオープン ソース プロジェクトであり、開発者はその内部実装メカニズムをより深く理解できます。
2. php.MVC を使用すると、モジュール開発が促進され、開発者とデザイナーの役割の分離が促進され、コードの再利用性と保守性が向上します。
3. php.MVC フレームワークを学習するときは、Jakarta Struts の知識と経験から学ぶことができます。Struts の開発経験がある場合は、すぐに php.MVC を開発に使用できます。
4. MVC パターンは、Java で Web アプリケーションを開発するための設計標準です。php.MVC フレームワークを使用すると、Web 開発者が MVC 設計パターンを理解するのにも役立ちます。
欠点:
1. php.MVC 関数はまだ変更および改善されているため、常に最新バージョンに注意を払う必要があります。
2. php.MVC を使用するには、追加の学習プロセスが必要です。
3. php.MVC を適用すると、明確なプログラム構造を取得できますが、システムの複雑さも増加します。
4. php.MVC を適用するとプログラムをより整理できますが、プログラムの実行速度も低下します。

したがって、プロジェクトの規模、サイクル、コスト、開発者の品質などのさまざまな条件に基づいて、php.MVC フレームワークを適用するかどうかを決定する必要があります。

4. php.MVC シリーズのチュートリアルの処理プロセス:

php.MVC フレームワークは多くのクラスによって組み立てられていますが、このフレームワークを使用するためにすべてのクラスの詳細な動作プロセスを理解する必要はありません。図 2 に必要なものを示します。このフレームワークを使用するには、いくつかのコアコンポーネントを理解してください。


図 2 から、典型的な Web ブラウザーの http リクエストがアプリケーション フレームワークのコア クラスとどのように対話するか、そして Web ブラウザーへの HTTP 応答を取得する方法がわかります。

それでは、フレームワークの処理フローを理解するために例を使用してみましょう。たとえば、会社の売上レポートを表示したい場合は、まずブラウザのアドレス バーに

http://www.myhost.com/mycompany/Main.php?do=salesReport と入力します。その後、クライアントはリクエストをphp.MVC アプリケーション。アプリケーション フレームワークのコントローラーはリクエストを処理し、クエリ文字列を解析して、リクエスト パスのキーワードを抽出します。この例では、パスは salesReport です。後ほど、XML 構成ファイル、バインド フォーム検証、ビジネス ロジック処理、および表示コンポーネントを通じて必要なアプリケーション動作を構成する方法を説明します。

認証されたユーザーのみがこのレポートにアクセスできるように厳密に制御したい場合、ユーザーはまず基本的な認証情報 (通常はユーザー名とパスワード) を入力する必要があります。認証されたユーザーのみがレポートにアクセスできるように制限するには、ここで ActionForm というクラスを使用し、フレームワークの ActionForm を継承して、SalesActionForm などの独自のフォーム検証クラスを定義する必要があります。

class SalesActionForm extends ActionForm { ... }.

SalesActionForm クラスでは、ユーザーが次のアクションを決定するのに信頼できるかどうかを確認する必要があります。ユーザーが検証に失敗した場合は、最初のページにリダイレクトされて再入力が求められます。検証に合格した場合、コントローラーは Action クラスを介してビジネス処理クラスを呼び出します。
以下に示すように、SalesAction などのフレームワークの Action クラスを継承してカスタマイズします。
class SalesAction extends Action { ... }.

XML 設定ファイルで、リクエストとアクションの対応関係を定義する必要がありますこれにより、プロセッサは対応する Action クラスを見つけて、ここで SalesAction を呼び出します。 SalesAction クラスでは、ビジネス処理クラスとデータ ソースにアクセスできます。この例では、データベースから売上データを取得し、レポート形式で作成します。例: 以下に示すように、後で販売レポート テンプレートで使用できるいくつかのオブジェクトを作成します。

// 販売レポート アイテム - ゾーンごと (個々のオブジェクト インスタンス):

$item1 = new item('Northern Zone Sales ' , $salesNorth);
$item2 = new item('Southern Zone Sales' , $salesSouth);
...

販売レポートを完成したら、コントローラーを介して表示するための表示コンポーネントを指定する必要があります。これは、以下に示すように、XML 構成ファイルで構成された Forward というオブジェクトを通じて行われます。
return $mapping->findForwardConfig('salesReportSuccess');

Forward オブジェクトには、販売レポート テンプレートなどのパスが含まれます。 salesReport.tpl として、構成ファイルにも定義されます。

その後、コントローラーはリクエストを ActionDispatcher に転送し、事前に定義されたオブジェクトと変数にアクセスして、SalesAction で準備されたデータを取得することで、リクエストをテンプレート内の指定された表示コンポーネント (この場合は salesReport.tpl) に送ります。 Off Off Objectインスタンス): - > gt;

< table class = 'salestable'>
< tr>
< td class = 'salesitemdesc' tal:content = "item1/salesnorth">
販売report-> ;value will be appeared here

...


" 最後に、処理結果が HTTP 経由でクライアントのブラウザに送信され、処理プロセス全体が完了します。


5. php.MVC シリーズチュートリアルのディレクトリ ファイル



次に、典型的な php.MVC Web アプリケーションの構造を分析しましょう。

: php.MVC クラス ライブラリがサーバーの DEV ディレクトリにインストールされていることがわかります。このディレクトリは、いくつかの一般的なクラス ライブラリを配置するために使用されます。セキュリティ上の理由から、このディレクトリには Web ユーザーがアクセスすることを許可していないため、このディレクトリを Web ルート ディレクトリに作成しないことをお勧めします。何らかの理由で php.MVC クラス ライブラリを Web ルート ディレクトリにインストールする必要がある場合は、.htaccess ファイルを使用してそのアクセス オブジェクトを制御する必要があります。

以下に示すのは、Apache の .htaccess ファイルです

# ディレクトリ内の .htaccess ファイルがオーバーライドできるオプションです。

# apache/conf/httpd.conf を .htaccess のAllowOverride に編集します

#AllowOverride AuthConfig

# ディレクトリ リストの表示を停止します

オプション -Indexes

# このサーバーから情報を取得できる人を制御します。
Order Deny,Allow
すべてから拒否

localhost から許可


これは、.htaccess とそのファイルを含むディレクトリへの全員のアクセスを拒否するように Apache サーバーに指示します。サブディレクトリ。この場合は、php.MVC クラス ライブラリの /WEB-INF ディレクトリに含まれるファイルとサブディレクトリです。
サーバー ホストからのアクセスを許可します。これにより、Web サーバーを使用する開発者は、クラス ライブラリの下のテスト ディレクトリを参照し、単体テストを実行できます。

php.MVC ファイルは何も変更せずに通常どおり使用できます。クラス ライブラリ ファイルにアクセスするには、以下に示すように、Web アプリケーションの Main.php ファイルに php.MVC クラス ライブラリのルート ディレクトリを設定する必要があります。

$ appServerRootDir = 'D:/Dev/PHP/phpmvc-base'; // 末尾のスラッシュはありません


php.MVC Web アプリケーション

図 3 から、Web アプリケーション ディレクトリ SalesReport が Web に配置されていることがわかります。ルート ディレクトリ WWWdown。
SalesReports の下の第 1 レベルのディレクトリには、いくつかのディレクトリがあり、art ディレクトリはアプリケーション イメージの保存に使用され、style ディレクトリはスタイル シートの保存に使用されます。実際に名前を変更する必要がある場合は、次のようにテンプレート ファイルでこれらのリソースにアクセスできます:

次は WEB-INF ディレクトリで、アプリケーションのクラスとリソースが保存されます。 Web からはアクセスできません。これは .htaccess ファイルを通じて行われます。開発者はこのディレクトリにディレクトリとサブディレクトリを自由に作成できますが、それらは WEB-INF ディレクトリの ModulePaths.php で宣言する必要があります。 WEB-INF ディレクトリでは、class ディレクトリはアプリケーション クラスとリソース ファイルの格納に使用され、tpl ディレクトリは Web ページ テンプレートなどの表示リソースの格納に使用されます。

WEB-INF ディレクトリには、.htaccess、ModulePaths.php、phpmvc-config.xml、phpmvc-config_1_1.dtd、phpmvc-config.data、prepend.php ファイルもあります。 .htaccess ファイルについては前に説明しました。

ホームディレクトリ

$appDirs[] = 'WEB-INF';

$appDi rs[] = 'WEB-INF/classes';
$appDirs[] = 'WEB-INF/tpl';

phpmvc-config .xml ファイル これは php.MVC アプリケーションの中心的なコンポーネントであり、アプリケーションの動作とプロパティは XML を通じて定義できます。これについては後ほど詳しく説明します。
phpmvc-config_1_1.dtd ファイルは、phpmvc-config.xml のドキュメントタイプ定義ファイルであり、phpmvc-config.xml ファイルに含めることができるノードを指定します。これは、アプリケーションの動作と属性の最終的な参照となります。 。ほとんどの XML エディターは、DTD ファイルを使用して phpmvc-config.xml ファイルの有効性を検証できます。

phpmvc-config.data ファイルには、phpmvc-config.xml ファイル内の最新情報に基づいて動的に生成される、アプリケーションの一部の構成データが含まれています。アプリケーションで期待した結果が得られない場合は、phpmvc-config.xml にスペースバーを追加して変更できます。アプリケーションを再実行すると構成データが再生成されます。


PropertyMessageResources.php';
Main.php は php.MVC アプリケーションの単一のエントリ ポイントであり、アプリケーションのルート ディレクトリに配置されます。すべてのリクエストはそれを通じて完了する必要があります。

上記のことから、php.MVC クラス ライブラリへのパスは Main.php ファイルで定義する必要があることがわかります


$appServerRootDir = 'D:/Dev/PHP/phpmvc-base' // 末尾のスラッシュはありません

指定されたアプリケーションのパス

$ Modulerootdir = 'C:/www/salesReports'; // 末尾のスラッシュはありません

アプリケーションの ACTINDISPATCHER パスを設定することもできます。各 php.MVC アプリケーションは通常、指定されたリクエストを処理するために

ActionDispatcher 変数を定義する必要があります。

$actionDispatcher = 'ReportActionDispatcher'; 通常、フレームワークはホストのオペレーティング システムの種類を自動的に検出できます。ただし、アプリケーションがパス エラーで実行される場合は、この変数を手動で設定してください。以下に示すように:
$ $ OSTYPE = 'Unix';

通常の状況では、main.php に含まれる他のパラメータは変更できません。




6. php.MVC シリーズチュートリアルのオブジェクト関係

図 4 は、開発者の観点から見た php.MVC サンプル プログラムの主要なクラスとリソース、およびそれらの間の関係を示しています。


上の図の左上隅には ActionForm クラスがあり、これを継承して HTML フォームの検証と関連関数を処理します。この例では、基本クラス AbstractBaseForm は、ActionForm を継承することによって定義されます。これには、いくつかの共通ロジックが含まれており、他のアプリケーションの ActionForm クラスから参照できます。たとえば、SalesReportForm クラスは、具体的に AbstractBaseForm クラスを実装します。

上の図の上部には Action クラスがあり、通常、ActionForm クラスを通じて初期化検証が完了したリクエストを処理するために使用されます。もう一度、Action 定義を継承する基本クラス AbstractBaseAction を確認します。SalesReportAction クラスは AbstractBaseAction を継承し、SalesReportAction クラスでビジネス ロジック クラス ReportBusinessClass を呼び出してデータベースやその他のリソースにアクセスできます。

上の図の下部には、ActionDispatcher クラスがあります。これは、アクション リクエストの Web ページ テンプレートなどの表示リソースを準備する役割を果たします。通常、フレームワークの ActionDispatcher クラスを継承して、例の ReportActionDispatcher などの独自の Dispatcher を定義する必要があります。将我们
7、php.mvc システムチュートリアルの構成ファイルについては、今後さらに詳しく説明します。 次に、php.mvc の構造とプロセスについて説明します。

XML 設定ファイルは、php.MVC アプリケーションの「スイッチボード」であり、HTTP リクエストのバインディング コンポーネントです。コントローラーはいくつかのフレームワーク クラスで構成され、正しいフォーム クラスとアクション クラスを検索し、HTTP リクエストのリソースを表示する役割を果たします。コントローラーは phpmvc-config.xml ファイルで定義されます。 ActionForm クラスは通常、Web フォームの検証を処理するために使用されます。 Action クラスはビジネス処理クラスにアクセスできるため、アプリケーションのビジネス フローに集中できます。 ActionDispatcher クラスは、表示リソースの処理を処理します。

XML アプリケーション構成システム

phpmvc-config.xml ファイルは、php.MVC アプリケーションの主要な構成コンポーネントであり、各 php.MVC アプリケーションには独自の phpmvc-config.xml ファイルがあり、通常は WEB-INF ディレクトリにあります。 。 下。このファイルが変更されると、コントローラーは XML パーサーを呼び出してファイルを解析し、XML ノードを構成オブジェクトに変換します。これらの構成オブジェクトは phpmvc-config.data ファイルにキャッシュされます。通常、このファイルは phpmvc と同じファイルに配置されます。 -config.xml ディレクトリ。後続のリクエストでは、コントローラーはキャッシュされた phpmvc-config.data ファイルをロードして、処理時間を節約します。図 5 では、構成ファイルとアプリケーション コンポーネントがどのようにリンクされているかを示しています。このロゴは、Action ノードの SalesReport として定義されています。 =salesReport.


アクション ノードの name 属性は salesReportForm で、フォーム検証を処理するために salesReportForm という名前のフォーム Bean を使用することをコントローラーに伝えます。 action-mappings ノードの上の form-b​​ean の validate 属性は true です。これは、コントローラーが form-b​​ean の validate(...) メソッドを呼び出すことを意味します。接続される ACTION ノードと Form-Bean ノードには、Type 属性があります。この属性を使用して、フォーム Bean とアクションの対応するクラスを定義します。たとえば、アクション ノードは Action クラスを SalesReportAction として定義し、フォーム Bean ノードの ActionForm クラスは SalesReportForm です。

次に、アクション ノードでフォワード ノード グループを定義して、フレーム表示コンポーネントの URI を指定する必要があります。name 属性はフォワード ノードの識別子を定義し、path 属性はこのアクションに関連付けられたリソースまたはテンプレートを定義します。 。この例では、最初のフォワード ノードは salesReportSuccess として定義され、2 番目のフォワード ノードは salesReportFailure として定義され、リソース パスは salesReportIndex.tpl です。表示されるリソースの場所を指定します。この例では、レポートが正常に生成された場合は、 salesReportSuccess オブジェクトとその定義されている salesReport.tpl を使用してリクエストを処理します。レポートの生成が失敗した場合は、 salesReportFailure オブジェクトと salesReportIndex.tpl を使用してリクエストを処理し、通常は戻り値を返します。最初のページへ。

phpmvc-config.xml ファイルは、一般的なテキスト エディターまたは専用の XML エディターで変更できます。専用の XML エディターは、phpmvc-config_1_1.dtd を使用して、構成ファイルの有効性を検証できます。DTD ファイルは、XML ファイルで使用できる要素、属性、および値を定義します。この分野の知識については、XML 関連の情報を参照してください。例 以下は、PHPMVC-config.xml ファイルの例です。

x x x x x x x x x x

PHP.MVCシリーズのチュートリアルのコントローラー8.コントローラー典型的なユーザーリクエストは次のとおりです:http://www.myhost.com/mycompany/main.php?do=salesreport.

リクエストが届くと、フロントエンド コントローラーがアプリケーションのインストールを担当し、コントローラーは phpmvc-config.xml の構成プロパティに従ってリクエストを処理します。

main.php ファイルによって受け入れられるユーザー要求リクエスト ここでは、いくつかの初期化パラメーターが設定されます。フロントエンド コントローラーは次のタスクを実行します:

アプリケーション パスの定義: 次のように、php.MVC クラス ライブラリと Web アプリケーションへのパスを指定します:
$appServerRootDir = 'C:/WWW/phpmvc- Base';

$moduleRootDir = 'C:/WWW/mycompany'; アプリケーションの ActionDispatcher を定義します: 通常、フレームワーク ActionDispatcher を拡張して独自の Dispatcher クラスを定義する必要があります:

$actionDispatcher = 'MyActionDispatcher';クラスとリソースをロードするために、フロント コントローラーはアプリケーション パスだけでなく事前定義されたグローバル パスもインポートします。 /WEB-INF/ModulePaths.php でパスを次のように設定できます:

$appDirs = array();

$appDirs = 'WEB-INF/report_tpl';
$appDirs = 'WEB-INF/ report_classes'; にはアプリケーション クラスが含まれます。フロントエンド コントローラーは、必要なクラス ファイルをインポートします。また、/WEB-INF/prepend.php ファイルを使用して、いくつかの特別なアプリケーション クラス ファイルを選択的にインポートすることもできます。以下のように:

include_once './WEB-INF/mytools/MyTools.php'; アプリケーションを構成する: フロントエンド コントローラーは、前に定義した ActionDispatcher などのアプリケーションの構成情報を設定します。 コントローラーの初期化: フロントエンド コントローラーはアプリケーション サーバー インスタンス (ActionServer) を作成します。 構成情報のインポート: フロントエンド コントローラーは、最後のリクエスト以降に phpmvc-config.xml が変更されている場合、phpmvc-config.xml ファイルが再処理され、データが /WEB-INF にキャッシュされます。 /phpmvc-config.data. HTTP リクエストの初期化: フロント コントローラーは HTTP リクエストを設定し、リクエスト プロパティを追加します。 アプリケーション コントローラーの呼び出し: フロントエンド コントローラーは準備を完了し、コントローラーに処理を引き渡します。

コントローラーはフロントエンド コントローラーからリクエストを受信し、構成プロパティに基づいて一連の操作を実行します。

:アクション パスの処理: コントローラーはリクエスト パスに基づいてキーワードを識別し、アクション マッピングを選択します。たとえば、リクエスト パスは
http://www.myhost.com/mycompany/Main.php?do=salesReport で、アクション パスは salesReport です。
処理サイト: 必要に応じて現在のユーザーのロケールを選択します。 処理コンテンツ形式: デフォルトは text/html です。 キャッシュなしの処理: 必要に応じて非キャッシュ ヘッダー情報を設定します。 デフォルトは次のとおりです:
"Pragma"、"No-cache"
"Cache-Control"、"no-cache"
"Expires"、1 前処理タスクの処理:カスタム ActionServer サブクラスでこのメソッドをオーバーライドして、指定されたいくつかの前処理タスクを実行できます。 アクション マッピングの処理: コントローラーはリクエストに従ってアクション マッピングを識別し、phpmvc-config.xml の対応するノードに基づいてアクション マッピング オブジェクト (ActionConfig) を生成します。例: 。 処理役割: このアクションを実行できるようにするために必要なすべての認証をチェックします。 ActionForm の処理: コントローラーは、アクション マッピングに従って、関連付けられた ActionForm を見つけます。フォーム Bean は、次のようなアクションの name 属性によって指定されます。
などのアクションの validate 属性の値に基づいて、ActionForm の validate() メソッドを呼び出すかどうかを決定します。 validate() が FALSE (検証失敗) を返した場合、コントローラーは、アクションの Action 属性の input プロパティで指定された表示リソース (テンプレート) でエラーを表示します。
& lt; アクション パス = "salesReport"
...
value = "true "
input = reportsindex.tpl & gt;
value が true (検証済み) を返す場合、処理は続行されます。前方処理: コントローラーは、前方マップされた URI が正常かどうかを確認し、正常であれば処理を続行します。 インクルードの処理: コントローラーは、インクルードによってマッピングされた URI が正常かどうかを確認し、正常であれば処理を続行します。 アクション作成の処理: コントローラーは、次のようなアクションの type 属性を使用して定義される、このリクエストを処理するアクション インスタンスを作成または取得します。
アクションの実行: コントローラーは、Action クラスのexecute() メソッドを呼び出します。 、SalesReportAction->execute(...) など。このメソッド内で、ビジネス処理ロジック クラスを呼び出します。 アクション チェーンの処理: コントローラーは、アプリケーション構成ファイルで、処理する必要がある別のアクションがあるかどうかを確認します。ActionChain を定義するには、nextActionPath 属性を追加する必要があります。アクション ノードの forward 要素。次のようなもの:
path = "salesReport.tpl"
nextActionPath = "salesReport2"/>
.. この特別なアクションに出力がない場合、 path = "" を設定できます。 処理アクション 転送: コントローラーは指定されたリソースに転送またはリダイレクトし、転送要求は現在のプロセッサーで処理されます。 RequestProcessor は、指定された URI テンプレートを含む ActionDispatcher に制御を渡すだけです。例:
name="forward_path
path="forwardRequest"
redirect="false"/> リダイレクト リクエストは、実際にはヘッダー応答をクライアント ブラウザーに送信し、その後、新しい URL にリダイレクトします。リダイレクト ヘッダー情報が送信されると、プロセスは直ちに終了します。

name="redirect_path
path="/MyApp/Main.php?do= newRequest"
redirect ="true"/>
name="redirect_path
path="http://www.myhost.com/MyApp/Main. php?do=newRequest"
redirect="true"/>

他に処理するアクションがない場合、コントローラーの処理は終了します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。