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

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

Jul 29, 2016 am 09:08 AM
mvc thinkphp

この記事では主に thinkphp マルチレイヤー MVC の使用方法を紹介し、thinkPHP でのマルチレイヤー MVC の具体的な原理と関連する使用スキルを例とともに分析します。必要な方は参考にしてください。

この記事では thinkphp multi の使用方法について説明します。 -layer 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
ログイン後にコピー

デフォルトモデルを呼び出すレイヤー モデル データ アクセス インターフェイス クラスをダウンロードするとき、2 番目のパラメーターのモデル ファイル名はありません。デフォルトのモデル レイヤーは、次のように設定を変更することもできます:

この場合、コードは次のとおりです。 、インスタンス化メソッドは対応する必要があります Modified


'DEFAULT_M_LAYER' =>  'Logic', // 更改默认的模型层名称为Logic
ログイン後にコピー

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

2. ビュー レイヤー ビュー

ビュー レイヤーはテンプレートとテンプレート エンジンで構成されており、テンプレート内で php コードを直接使用できます。 (テンプレート テーマ) ) 区別するには、例:

View/default/User/add.html

View/blue/User/add.html

異なるビュー ディレクトリを使用して、より複雑なマルチレイヤー ビューを区別することもできます。例:

通常のビュー レイヤー ディレクトリを表示

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

このようにして、異なるテンプレートで異なるページ スタイルを使用でき、次のようにビュー ディレクトリをデフォルトにすることもできます:

コードは次のとおりです。以下:

D('User') //实例化UserLogic
D('User','Model') //实例化UserModel
D('User','Service') //实例化UserService
ログイン後にコピー

3. コントローラー層コントローラー

ThinkPHP コントローラーには 2 つのカテゴリーがあり、1 つはコア・コントローラーで、もう 1 つはビジネス・コントローラーです。コア・コントローラーは、thinkPHP ディレクトリー (thinkphpThinkPHPLibraryThinkControllerHproseController.class.php) にあります。 HTTP リクエストのインターセプト、転送、設定の読み込みなど、アプリケーションのスケジューリング制御を担当します。ここで説明するのは、ユーザー定義のコントローラー クラスによって完成されるビジネス コントローラーです。マルチレイヤー ビジネス コントローラーの実装原理は、ビジネス コントローラーやイベント コントローラーなどのモデルの階層化と同様です。

'DEFAULT_V_LAYER' => 'Mobile', // 默认的视图层名称更改为Mobile
ログイン後にコピー

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

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

Controller/UserController //用于用户的业务逻辑控制和调度
Event/UserEvent //用于用户的事件响应操作
ログイン後にコピー

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

namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
}
ログイン後にコピー

UserContrller は外部対話型応答、http://www.php.cn/ などの URL リクエストによる応答を担当し、UserEvent は内部イベント応答を担当し、同様に内部でのみ A('User','Event') を呼び出すことができます。デフォルトのコントローラーレイヤーを設定できます:

コードは次のとおりです:

namespace Home\Event;
use Think\Controller;
class UserEvent extends Controller{
}
ログイン後にコピー

マルチレイヤーコントローラーは必須ではなく、アプリケーションのニーズに応じて自由にレイヤー化できます。必要に応じてコントローラーで階層化されたモデルを呼び出すことができ、さまざまな階層ビューを表示してさまざまなテーマを実装することもできます。

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


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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

thinkphpプロジェクトの実行方法 thinkphpプロジェクトの実行方法 Apr 09, 2024 pm 05:33 PM

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

thinkphp にはいくつかのバージョンがあります thinkphp にはいくつかのバージョンがあります Apr 09, 2024 pm 06:09 PM

ThinkPHP には、さまざまな PHP バージョン向けに設計された複数のバージョンがあります。メジャー バージョンには 3.2、5.0、5.1、および 6.0 が含まれますが、マイナー バージョンはバグを修正し、新機能を提供するために使用されます。最新の安定バージョンは ThinkPHP 6.0.16 です。バージョンを選択するときは、PHP バージョン、機能要件、コミュニティ サポートを考慮してください。最高のパフォーマンスとサポートを得るには、最新の安定バージョンを使用することをお勧めします。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法 Nov 22, 2023 pm 12:01 PM

「開発に関する提案: ThinkPHP フレームワークを使用して非同期タスクを実装する方法」 インターネット技術の急速な発展に伴い、Web アプリケーションには、多数の同時リクエストと複雑なビジネス ロジックを処理するための要件が​​ますます高まっています。システムのパフォーマンスとユーザー エクスペリエンスを向上させるために、開発者は多くの場合、電子メールの送信、ファイルのアップロードの処理、レポートの生成など、時間のかかる操作を実行するために非同期タスクの使用を検討します。 PHP の分野では、人気のある開発フレームワークとして ThinkPHP フレームワークが、非同期タスクを実装するための便利な方法をいくつか提供しています。

laravelとthinkphpではどちらが優れていますか? laravelとthinkphpではどちらが優れていますか? Apr 09, 2024 pm 03:18 PM

Laravel フレームワークと ThinkPHP フレームワークのパフォーマンスの比較: ThinkPHP は、最適化とキャッシュに重点を置いて、一般に Laravel よりもパフォーマンスが優れています。 Laravel は優れたパフォーマンスを発揮しますが、複雑なアプリケーションの場合は、ThinkPHP の方が適している可能性があります。

PHP MVC アーキテクチャ: 将来に向けた Web アプリケーションの構築 PHP MVC アーキテクチャ: 将来に向けた Web アプリケーションの構築 Mar 03, 2024 am 09:01 AM

はじめに 今日の急速に進化するデジタル世界では、堅牢かつ柔軟で保守可能な WEB アプリケーションを構築することが重要です。 PHPmvc アーキテクチャは、この目標を達成するための理想的なソリューションを提供します。 MVC (Model-View-Controller) は、アプリケーションのさまざまな側面を独立したコンポーネントに分離する、広く使用されている設計パターンです。 MVC アーキテクチャの基礎 MVC アーキテクチャの核となる原則は、関心事の分離です。 モデル: アプリケーションのデータとビジネス ロジックをカプセル化します。ビュー: データの表示とユーザー インタラクションの処理を担当します。コントローラー: モデルとビュー間の対話を調整し、ユーザーのリクエストとビジネス ロジックを管理します。 PHPMVC アーキテクチャ phpMVC アーキテクチャは従来の MVC パターンに従いますが、言語固有の機能も導入しています。以下はPHPMVCです

thinkphpのインストール方法 thinkphpのインストール方法 Apr 09, 2024 pm 05:42 PM

ThinkPHP のインストール手順: PHP、Composer、および MySQL 環境を準備します。 Composer を使用してプロジェクトを作成します。 ThinkPHP フレームワークと依存関係をインストールします。データベース接続を構成します。アプリケーションコードを生成します。アプリケーションを起動し、http://localhost:8000 にアクセスします。

thinkphpのパフォーマンスはどうですか? thinkphpのパフォーマンスはどうですか? Apr 09, 2024 pm 05:24 PM

ThinkPHP は、キャッシュ メカニズム、コードの最適化、並列処理、データベースの最適化などの利点を備えた高性能 PHP フレームワークです。公式パフォーマンステストでは、1秒あたり10,000以上のリクエストを処理できることが示されており、実際のアプリケーションではJD.comやCtripなどの大規模なWebサイトやエンタープライズシステムで広く使用されています。

See all articles