ホームページ >PHPフレームワーク >ThinkPHP >thinkphp5 の MVC 階層化とは何ですか

thinkphp5 の MVC 階層化とは何ですか

WBOY
WBOYオリジナル
2022-03-07 10:31:595675ブラウズ

thinkphp5 では、MVC 階層化とは、モデル層、ビュー層、コントローラー層の間の分業と連携を指します。ロジック層とプレゼンテーション層は別々の操作を実行します。モデル層はデータベース操作を担当し、コントローラーはモジュール クラスであり、URL に従ってスケジュールおよび操作され、ビューはアクション コントローラーとテンプレート ファイルを接続するために使用されます。

thinkphp5 の MVC 階層化とは何ですか

この記事の動作環境: Windows 10 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。

thinkphp5 における MVC 階層化とは何ですか。

MVC、M モデル、V ビュー、C コントローラー。

階層化とは、論理層とプレゼンテーション層が別々に動作する、分業と協力を意味します。モデルは以下を担当します。 データベース操作。コントローラー: あらゆる WEB 操作はモジュールの操作であり、コントローラーは URL に従ってスケジュールを設定し、操作するモジュール クラスです。 View(Viewクラスとテンプレートファイルで構成):アクションコントローラとテンプレートファイルを接続しますアクションクラスはViewクラスを介してテンプレートファイルにデータを渡し、テンプレートファイルは受け取ったデータを対応するデータ形式に変換して表示します。

ThinkPHP は MVC (Model-View-Controller、Model-View-Controller) パターンに基づいており、マルチレイヤー (多層) 設計をサポートしています。

モデル層

デフォルトのモデル層はModelクラスで構成されていますが、プロジェクトが成長し、ビジネスシステムが複雑になるにつれて、単一のモデル層で要件を満たすことが困難になります。モデル サポートの設計思想は非常にシンプルで、さまざまなモデル層がシステムの Model クラスから継承されていますが、ディレクトリ構造と命名規則で区別されています。

たとえば、特定のプロジェクトの設計では、データ層、ロジック層、サービス層などの異なるモデル層を区別する必要があり、モジュールの下にモデル、ロジック、サービスのディレクトリを作成できます。ユーザー テーブル内のすべてのモデルを保存するディレクトリ。操作は 3 つの層に分かれています:

データ レイヤー: モデル/ユーザーは、データ関連の自動検証と自動完了、およびデータ アクセス インターフェイスを定義するために使用されます

ロジック層: ロジック/ユーザーは、ユーザー関連のビジネス ロジックを定義するために使用されます。

サービス層: サービス/ユーザーは、ユーザー関連のサービス インターフェイスなどを定義するために使用されます。

そしてこれら 3 つモデル操作クラスはすべて \think\Model クラスを継承できます。

モデル レイヤーの階層分割は非常に柔軟です。開発者は、プロジェクトのニーズに応じてモデル階層を自由に定義および追加できます。モデル レイヤーのみを使用することもできます。

ビュー レイヤー

ビュー レイヤーは、テンプレートとテンプレート エンジンで構成されます。PHP コードはテンプレート内で直接使用できます。テンプレート エンジンの設計については後で説明します。ドライバーを通じて他の機能をサポートするサードパーティのテンプレート エンジン。マルチレイヤー ビューは、ディレクトリによって簡単に区別できます。例:

view/default/user/add.html
view/blue/user/add.html

より複雑なマルチレイヤー ビューは、さまざまなビュー ディレクトリを使用してさらに実装できます。たとえば、

view 通常ビュー レイヤディレクトリ

モバイル アクセス ビュー層ディレクトリ

コントローラー (コントローラー) 層

ThinkPHP のコントローラー層は、コア コントローラーとビジネス コントローラーで構成されます。システム内のクラスであり、HTTP リクエストのインターセプトと転送、設定の読み込みなどを含む、アプリケーション (モジュール、コントローラー、操作を含む) のスケジューリング制御を担当します。ビジネス コントローラーは、ユーザー定義のコントローラー クラスによって完成します。マルチレイヤー ビジネス コントローラーの実装原理は、ビジネス コントローラーやイベント コントローラーなどのモデルの階層化と似ています。

controller/User //用于用户的业务逻辑控制和调度
event/User //用于用户的事件响应操作

controller\User は外部対話の応答を担当し、http などの URL リクエストを通じて応答します。 ://serverName /User/index、event\User は内部イベント応答を担当し、内部でのみ呼び出すことができるため、外部から隔離されています。マルチレイヤーコントローラーの分割は必須ではなく、アプリケーションのニーズに応じて自由に階層化できます。コントローラー層では、必要に応じて階層化モデルを呼び出すことも、さまざまな階層化ビューを呼び出すこともできます。

推奨学習: 「PHP ビデオ チュートリアル

以上がthinkphp5 の MVC 階層化とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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