検索
ホームページバックエンド開発PHPチュートリアルthinkPHP5.0 フレームワークの全体的なアーキテクチャの詳細な概要

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

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

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

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

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

serverName/index.php (または 他のアプリケーション エントリ ファイル)/ に基づいて決定されます。 module/controller /Operation/Parameter/Value...

以下の概念のいくつかは理解する必要があり、以下のコンテンツで頻繁に言及される可能性があります。

エントリ ファイル

ユーザーによってリクエストされた PHP ファイル。リクエストの ライフ サイクル の処理を​​担当します (必ずしも URL リクエストである必要はないことに注意してください)。最も一般的なエントリ ファイルは index.php、バックグラウンド モジュール <code>admin.php またはコントローラ プログラム エントリ think の別個のエントリ ファイルなど、特別なニーズのために新しいエントリ ファイルが追加される場合があります。すべてが属しますエントリーファイルに。 index.php,有时候也会为了某些特殊的需求而增加新的入口文件,例如给后台模块单独设置的一个入口文件admin.php或者一个控制器程序入口think都属于入口文件。

应用

应用在ThinkPHP中是一个管理系统架构及生命周期的对象,由系统的 thinkApp类完成,应用通常在入口文件中被调用和执行,具有相同的应用目录(APP_PATH

アプリケーション

ThinkPHP のアプリケーションは、システム アーキテクチャとライフサイクルを管理するオブジェクト です。アプリケーションは通常、エントリ ファイル内で呼び出され、実行されます。同じアプリケーション ディレクトリ (APP_PATH) を持つアプリケーションは同じアプリケーションであると見なされます。ただし、アプリケーションには複数のエントリ ファイルがある場合があります。

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

モジュール

通常、これらのモジュールは、アプリケーション ディレクトリの下にあるサブディレクトリであり、各モジュールには独自の独立した設定ファイル、パブリック ファイル、および

クラス ライブラリ

ファイルがあります。

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

:

&#39;app_multi_module&#39; =>  false,

Controller

各モジュールには独立したモジュールがあります。 MVC クラス ライブラリと構成ファイルでは、リクエストへの応答を担当する 1 つのモジュールの下に複数のコントローラーがあり、各コントローラーは実際には独立したコントローラー クラスです。

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

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

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

代表的な Index コントローラー クラスは次のとおりです。

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return &#39;hello,thinkphp!&#39;;
  }
}

Operation

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

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return &#39;index&#39;;
  }
  public function hello($name)
  {
    return &#39;Hello,&#39;.$name;
  }
}

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

Model

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

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

ThinkPHP的模型层支持多层设计,你可以对模型层进行更细化的设计和分工,例如把模型层分为逻辑层/服务层/事件层等等。

视图

控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。

视图通常会有一系列的模板文件对应不同的控制器和操作方法,并且支持动态设置模板目录。

驱动

系统很多的组件都采用驱动式设计,从而可以更灵活的扩展,驱动类的位置默认是放入核心类库目录下面,也可以重新定义驱动类库的命名空间而改变驱动的文件位置。

行为

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

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

// 在app_init位置侦听行为
\think\Hook::listen(&#39;app_init&#39;);

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

// 绑定行为到app_init位置
\think\Hook::add(&#39;app_init&#39;,&#39;\app\index\behavior\Test&#39;);

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

命名空间

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

以上がthinkPHP5.0 フレームワークの全体的なアーキテクチャの詳細な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPはユーザーのセッションをどのように識別しますか?PHPはユーザーのセッションをどのように識別しますか?May 01, 2025 am 12:23 AM

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションを保護するためのベストプラクティスは何ですか?PHPセッションを保護するためのベストプラクティスは何ですか?May 01, 2025 am 12:22 AM

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

PHPセッションファイルはデフォルトで保存されていますか?PHPセッションファイルはデフォルトで保存されていますか?May 01, 2025 am 12:15 AM

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra

PHPセッションからデータをどのように取得しますか?PHPセッションからデータをどのように取得しますか?May 01, 2025 am 12:11 AM

toretrievedatafrompsession、Startthessession withsession_start()andAccessvariablesshe $ _SessionArray.forexample:1)Startthessession:session_start()

セッションを使用してショッピングカートを実装するにはどうすればよいですか?セッションを使用してショッピングカートを実装するにはどうすればよいですか?May 01, 2025 am 12:10 AM

セッションを使用して効率的なショッピングカートシステムを構築する手順には、次のものがあります。1)セッションの定義と機能を理解します。セッションは、リクエスト全体でユーザーのステータスを維持するために使用されるサーバー側のストレージメカニズムです。 2)ショッピングカートに製品を追加するなど、基本的なセッション管理を実装します。 3)製品の量管理と削除をサポートし、高度な使用状況に拡大します。 4)セッションデータを持続し、安全なセッション識別子を使用することにより、パフォーマンスとセキュリティを最適化します。

PHPでインターフェイスをどのように作成して使用しますか?PHPでインターフェイスをどのように作成して使用しますか?Apr 30, 2025 pm 03:40 PM

この記事では、PHPでインターフェイスを作成、実装、および使用する方法について説明し、コード組織と保守性の利点に焦点を当てています。

crypt()とpassword_hash()の違いは何ですか?crypt()とpassword_hash()の違いは何ですか?Apr 30, 2025 pm 03:39 PM

この記事では、PHPのCrypt()とpassword_hash()の違いについて、パスワードハッシュの違いについて説明し、最新のWebアプリケーションの実装、セキュリティ、および適合性に焦点を当てています。

PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?PHPのクロスサイトスクリプト(XSS)をどのように防ぐことができますか?Apr 30, 2025 pm 03:38 PM

記事では、入力検証、出力エンコード、およびOWASP ESAPIやHTML浄化器などのツールを使用して、PHPのクロスサイトスクリプト(XSS)を防止します。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。