ホームページ >バックエンド開発 >PHPチュートリアル >TP フレームワークのマルチレイヤー MVC 使用状況分析
この記事では主に thinkphp 多層 MVC の使用法を紹介し、thinkPHP での多層 MVC の具体的な原理と関連する使用スキルを例とともに分析します。必要な友人は参考にしてください。お役に立てれば幸いです。
詳細は次のとおりです:
ThinkPHP はマルチレイヤー設計をサポートしています。
1. モデルレイヤーモデル
たとえば、プロジェクト設計で、データレイヤー、ロジックレイヤー、サービス層などの場合は、モジュール「モデル、ロジック、およびサービスのディレクトリを作成」ディレクトリの下に追加し、ユーザー テーブル上のすべてのモデル操作を 3 つの層に分割できます。
1.Model/UserModelは、データ関連の自動検証、自動完了、およびデータアクセスインターフェイスの定義に使用されます
2.Logic/UserLogicalは、ユーザー関連のビジネスロジックの定義に使用されます
3.Service/UserServiceは、定義に使用されますユーザー 関連するサービス インターフェイス
これら 3 つのモデルはすべて、Model クラスを継承します。たとえば、データ層 Home/Model/UserModel.class.php
namespace Home\Model; use Think\Model; class UserModel extends Model{}
論理層 Home/Logic/UserLogical.class.php。
namespace Home\Logic; use Think\Model; class UserLogic extends Model{}
サービス層 Home/Service/UserService.class.php
namespace Home\Service; use Think\Model; class UserService extends Model{}
呼び出すときは、組み込みの D メソッドまたは M メソッドを使用して
D('User') //实例化UserModel D('User','Logic') //实例化UserLogic D('User','Service') //实例化UserService
デフォルトのモデル層 Model の下のデータ アクセス インターフェイス クラスを呼び出す場合、2 番目のパラメーターのモデル ファイル名はありません。 デフォルトのモデル層は、次のように設定を変更することもできます:
'DEFAULT_M_LAYER' => 'Logic' , // デフォルトのモデル層名を Logic に変更します
この場合、インスタンス化メソッドもそれに応じて変更する必要があります
D('User') //实例化UserLogic D('User','Model') //实例化UserModel D('User','Service') //实例化UserService
D('User') を使用すると、デフォルトでインスタンスに移動します。UserLogice クラスに変換されるため、非常に柔軟です。データを検証する場合、自動補完は js で行われ、データの取得はサービス インターフェイスから行われます。レイヤー、その他のレイヤーは必要ありません。
2. ビュー レイヤー ビュー
ビュー レイヤーはテンプレートとテンプレート エンジンで構成されており、テンプレート内で php コードを直接使用できます。 (テンプレート テーマ) ) 区別するには、たとえば:
View/default/User/add.html View/blue/User/add.html
複雑なマルチレイヤー ビューは、次のような異なるビュー ディレクトリを使用して区別することもできます。たとえば:
通常のビュー レイヤー ディレクトリ
モバイル モバイル端末アクセス ビュー レイヤー ディレクトリ
この中でちなみに、異なるテンプレートは異なるページ スタイルを使用でき、次のようにビュー ディレクトリをデフォルトにすることもできます:
'DEFAULT_V_LAYER' => 'Mobile', // 默认的视图层名称更改为Mobile
3. コントローラー層Controller
ThinkPHP コントローラーには 2 つのカテゴリがあり、1 つはコア コントローラー、もう 1 つはビジネスですコントローラー、コア コントロール サーバーは、thinkphpThinkPHPLibraryThinkControllerHproseController.class.php などの ThinkPHP ディレクトリにあり、HTTP リクエストのインターセプト、転送、設定の読み込みなど、アプリケーションのスケジュール制御を担当します。ここで説明するのは、ユーザー定義のコントローラー クラスによって完成されるビジネス コントローラーです。マルチレイヤー ビジネス コントローラーの実装原理は、ビジネス コントローラーやイベント コントローラーなどのモデルの階層化と同様です。
Controller/UserController //用于用户的业务逻辑控制和调度 Event/UserEvent //用于用户的事件响应操作
namespace Home\Controller; use Think\Controller; class UserController extends Controller{ }
namespace Home\Event; use Think\Controller; class UserEvent extends Controller{ }
'DEFAULT_C_LAYER' => 'Event', // 默认的控制器层名称改为Event
多層コントローラーは必須ではなく、アプリケーションのニーズに応じて自由に階層化できます。必要に応じてコントローラーで使用したり、さまざまな階層ビューを表示してさまざまなテーマを実装したりできます。
関連推奨事項:
以上がTP フレームワークのマルチレイヤー MVC 使用状況分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。