thinkPHP5.0 フレームワークの全体的なアーキテクチャの概要 [アプリケーション、モジュール、MVC、ドライバー、動作、名前空間など]

不言
リリース: 2023-03-30 12:38:01
オリジナル
1504 人が閲覧しました

この記事では主に thinkPHP5.0 フレームワークの全体的なアーキテクチャを紹介し、thinkPHP5.0 のアプリケーション、モジュール、MVC、ドライバー、ビヘイビアー、名前空間などの概念と基本的な使い方を簡単に紹介します。必要な友人は参照してください。

この記事では、thinkPHP5.0 フレームワークの全体的なアーキテクチャについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

ThinkPHP5.0 アプリケーションは、MVC (Model-View-Controller) メソッドに基づいて編成されています。

MVC は、アプリケーションの入力、処理、出力の分離を強制する設計パターンです。 MVC を使用するアプリケーションは、モデル (M)、ビュー (V)、およびコントローラー (C) の 3 つのコア コンポーネントに分割されており、それぞれが独自のタスクを処理します。

5.0 URL アクセスはルーティングによって決定されます。ルーティングがオフになっている場合、または一致するルートがない場合は、

http://serverName/index に基づきます。 .php (または他のアプリケーション エントリ ファイル)/module/controller/operation/parameter/value...

次の概念のいくつかを理解する必要があります。これらの概念については、以下でよく言及されます。内容と。

エントリ ファイル

ユーザーが要求した PHP ファイルは、リクエストのライフサイクルを処理します (最も一般的なのは URL リクエストではないことに注意してください)。エントリ ファイルは index.php です。バックグラウンド モジュール admin.php やコントローラ プログラム エントリ ## 用の別個のエントリ ファイルなど、特別なニーズのために新しいエントリ ファイルが追加される場合があります。 #think はすべてエントリ ファイルに属します。

アプリケーション

ThinkPHP のアプリケーションは、システム アーキテクチャとライフサイクルを管理するオブジェクトであり、システムの

\think\App によって完成されます。通常、アプリケーションはエントリ ファイル内で呼び出され、同じアプリケーション ディレクトリ (APP_PATH) を持つアプリケーションは同じアプリケーションとみなされますが、アプリケーションには複数のエントリ ファイルがある場合があります。

アプリケーションには、独自の独立した構成ファイルとパブリック (関数) ファイルがあります。

モジュール

一般的なアプリケーションは、複数のモジュールで構成されます。これらのモジュールは、通常、アプリケーション ディレクトリの下にあるサブディレクトリであり、それ自体は独立しています。ファイルとクラス ライブラリ ファイル。

5.0 は、単一モジュール アーキテクチャ設計をサポートしています。アプリケーションにモジュールが 1 つしかない場合は、アプリケーション構成ファイルの を省略して変更できます。 ##

'app_multi_module' =>  false,
ログイン後にコピー

Controller

各モジュールには独立した MVC クラス ライブラリと設定ファイルがあり、1 つのモジュールの下に複数のコントローラーがあります。リクエストがあり、各コントローラーは実際には独立したコントローラー クラスです。

コントローラーは主に、リクエストの受信、関連するモデル処理の呼び出し、そして最終的にビューを介した出力を担当します。厳密に言えば、コントローラーはビジネス ロジックの処理にあまり関与すべきではありません。

実際、5.0 ではコントローラーをスキップでき、ルーティングを通じてリクエストを特定のモデルまたは他のクラスに直接ディスパッチして処理できます。

5.0 のコントローラー クラスはより柔軟で、基本的なクラス ライブラリを継承する必要がありません。

典型的なインデックス コントローラー クラスは次のとおりです。

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'hello,thinkphp!';
  }
}
ログイン後にコピー

##Operation

コントローラーには複数のものが含まれます。操作(メソッド)であり、操作メソッドはURLアクセスの最小単位です。 次は、2 つの操作メソッドを含む一般的なインデックス コントローラー操作メソッドの定義です。

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'index';
  }
  public function hello($name)
  {
    return 'Hello,'.$name;
  }
}
ログイン後にコピー

操作メソッドは省略可能です。どのパラメーターでも使用できます。 、オプションではないパラメータが定義されている場合、そのパラメータはユーザー リクエストを通じて渡される必要があります。URL リクエストの場合、通常は $_GET または $_POST を通じて渡されます。

Model

モデル クラスは通常、実際のビジネス ロジックとデータのカプセル化を完了し、形式に関係なくデータを返します。

モデル クラスは必ずしもデータベースにアクセスする必要はありません。5.0 アーキテクチャ設計では、実際のデータベース クエリ操作が実行されるときにのみデータベース接続が行われます。これは真の遅延接続です。 。


ThinkPHP のモデル層は多層設計をサポートしており、モデル層を論理層/サービスに分割するなど、モデル層でより詳細な設計や分業を行うことができます。レイヤー/イベントレイヤーなど。

#View

コントローラーがモデル クラスを呼び出した後に返されるデータは、ビューを通じてさまざまな形式の出力に組み立てられます。ビューは、テンプレート エンジンを呼び出してコンテンツを解析して出力するか、さまざまなニーズに応じて直接出力するかを決定します。

ビューには通常、さまざまなコントローラーや操作方法に対応する一連のテンプレート ファイルがあり、テンプレート ディレクトリの動的設定をサポートします。

ドライバー

システムの多くのコンポーネントは、より柔軟に拡張できるドライバー設計を採用しており、ドライバー クラスの場所は、コア クラス ライブラリ ディレクトリの下に配置されます。ドライバー クラス ライブラリの名前空間を再定義し、ドライバーのファイルの場所を変更することもできます。 #########行動######

行为(Behavior)是在预先定义好的一个应用位置执行的一些操作。类似于AOP编程中的“切面”的概念,给某一个切面绑定相关行为就成了一种类AOP编程的思想。所以,行为通常是和某个位置相关,行为的执行时间依赖于绑定到了哪个位置上。

要执行行为,首先要在应用程序中进行行为侦听,例如:

// 在app_init位置侦听行为
\think\Hook::listen('app_init');
ログイン後にコピー

然后对某个位置进行行为绑定:

// 绑定行为到app_init位置
\think\Hook::add('app_init','\app\index\behavior\Test');
ログイン後にコピー

一个位置上如果绑定了多个行为的,按照绑定的顺序依次执行,除非遇到中断。

命名空间

ThinkPHP5采用了PHP的命名空间进行类库文件的设计和规划,并且符合PSR-4的自动加载规范。

相关推荐:

搭建自己的PHP MVC框架

thinkPHP交易详情查询功能

以上がthinkPHP5.0 フレームワークの全体的なアーキテクチャの概要 [アプリケーション、モジュール、MVC、ドライバー、動作、名前空間など]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!