thinkphp5 では、MVC 階層化とは、モデル層、ビュー層、コントローラー層の間の分業と連携を指します。ロジック層とプレゼンテーション層は別々の操作を実行します。モデル層はデータベース操作を担当し、コントローラーはモジュール クラスであり、URL に従ってスケジュールおよび操作され、ビューはアクション コントローラーとテンプレート ファイルを接続するために使用されます。
この記事の動作環境: Windows 10 システム、ThinkPHP バージョン 5、Dell G3 コンピューター。
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 サイトの他の関連記事を参照してください。