ホームページ >バックエンド開発 >PHPチュートリアル >thinkphp マルチレイヤー MVC 使用分析、thinkphp マルチレイヤー mvc_PHP チュートリアル

thinkphp マルチレイヤー MVC 使用分析、thinkphp マルチレイヤー mvc_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 09:02:09897ブラウズ

thinkphp マルチレイヤー MVC の使用分析、thinkphp マルチレイヤー MVC

この記事では、thinkphp マルチレイヤー MVC の使用方法を例とともに説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

ThinkPHP はマルチレイヤー設計をサポートしています。

1.モデルレイヤーモデル

多層ディレクトリ構造と命名規則を使用して多層モデルを設計します。たとえば、プロジェクト設計で、データ層、ロジック層、サービス層などの異なるモデル層を区別する必要がある場合、モデルを作成できます。モジュール ディレクトリ内の、Logic、Service ディレクトリは、ユーザー テーブル上のすべてのモデル操作を 3 つのレベルに分割します。

1.Model/UserModel は、データ関連の自動検証、自動完了、およびデータ アクセス インターフェイスを定義するために使用されます

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

3.Service/UserServiceはユーザー関連のサービスインターフェイスに使用されます

これら 3 つのモデルはすべて、データ層 Home/Model/UserModel.class.php などの Model クラスを継承します

リーリー

ロジック層 Home/Logic/UserLogical.class.php

リーリー

サービス層 Home/Service/UserService.class.php

リーリー

呼び出し時に組み込みの D メソッドまたは M メソッドを使用できます

リーリー

デフォルトのモデル層 Model の下のデータ アクセス インターフェイス クラスを呼び出す場合、2 番目のパラメーターのモデル ファイル名はありません。
デフォルトのモデル層は Model です。 コードをコピーします コードは次のとおりです: 'DEFAULT_M_LAYER' => 'Logic', // デフォルトのモデルレイヤー名を Logic に変更します
この場合、インスタンス化メソッドをそれに応じて変更する必要があります

リーリー

D ('User') を使用すると、デフォルトで UserLogice クラスがインスタンス化されることがわかります。データを検証すると、自動補完がサービス インターフェイスから取得されます。この方法では、サービス層を 1 つだけ持つことができ、他の層は必要ありません。

2. レイヤーの表示

ビュー レイヤーはテンプレートとテンプレート エンジンで構成されます。一般的なサードパーティ テンプレートは .tpl です。たとえば、ディレクトリ (テンプレート テーマ) を使用するだけで、複数のビュー レイヤーを区別できます。 :

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 リクエストのインターセプト、転送、設定の読み込みなど。ここで説明するのは、ユーザー定義のコントローラー クラスによって完成されるビジネス コントローラーです。マルチレイヤー ビジネス コントローラーの実装原理は、ビジネス コントローラーやイベント コントローラーなどのモデルの階層化と同様です。 リーリー

イベントはまだ使用されていませんが、非常にハイエンドに見えます。Web開発ではユーザーイベントはほとんどなく、ほとんどがJSで完了します。

アクセス コントローラー Home/Controller/UserController.class.php は次のように定義されます:

リーリー

イベント コントローラー Home/Event/UserEvent.class.php は次のように定義されます:

リーリー

UserContrller は外部インタラクション応答を担当し、http://serverName/User/index などの URL リクエストを通じて応答します。UserEvent は内部イベント応答を担当し、同様に内部でのみ A('User','Event') を呼び出すことができます。デフォルトのコントローラーレイヤーを設定できます:


コードをコピーします コードは次のとおりです: 'DEFAULT_C_LAYER' => 'Event', // デフォルトのコントローラーレイヤー名が Event に変更されます 内部と外部は分離されており、多層コントローラーは必須ではなく、アプリケーションのニーズに応じて自由に階層化でき、必要に応じてコントローラー内でさまざまな階層化されたモデルを呼び出すことができ、さまざまな階層化されたビューを表示することもできます。のさまざまな実装を実現します。

MVC の 3 層では、ThinkPHP は M と V に依存しません。C のみまたは V のみを持つことができます。ユーザーはビューを定義するだけでよく、C がなくても自動的に認識されます。しかし、この奇妙な書き方多くの人が初心者プログラマーを非常に混乱させるでしょう。

マルチレイヤーデザインは現在のプロジェクトでは使用されていませんが、.net プロジェクトではよく見られます。次回使用するときにはさらに追加します。

この記事が、thinkPHP フレームワークに基づく皆様の PHP プログラミングに役立つことを願っています。

興味がありそうな記事:

    ThinkPHP の MVC 開発メカニズムの分析例
  • ThinkPHP3.1 の新機能、マルチレイヤー MVC サポート
  • ThinkPHP3.2 で関連するクエリを解決するためのアイデアを共有
  • ThinkPHP3 のプラグイン制御.2.2
  • ThinkPHP3.2.3のデータベース設定新機能
  • thinkphp3.2.2複数のサムネイルを生成する方法
  • ThinkPHP3.1のDメソッド例を詳しく解説

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1086637.html技術記事 Thinkphp マルチレイヤー MVC の使用分析、thinkphp マルチレイヤー MVC この記事では、thinkphp マルチレイヤー MVC の使用方法について例を示して説明します。参考のために皆さんと共有してください。詳細は次のとおりです。 ThinkPHP はマルチレイヤー設計をサポートしています。 1.モデル...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。