この記事では、主に 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 つしかない場合、このモジュールのサブディレクトリを省略して、アプリケーション構成ファイル内で変更できます:
'app_multi_module' => false,Controller
各モジュールには独立したモジュールがあります。 MVC クラス ライブラリと構成ファイルでは、リクエストへの応答を担当する 1 つのモジュールの下に複数のコントローラーがあり、各コントローラーは実際には独立したコントローラー クラスです。
コントローラーは主に、リクエストの受信、関連するモデル処理の呼び出し、そして最終的にビューを介した出力を担当します。厳密に言えば、コントローラーはビジネス ロジックの処理にあまり関与すべきではありません。
実際、5.0 ではコントローラーをスキップでき、ルーティングを通じてリクエストを特定のモデルまたは他のクラスに直接ディスパッチして処理できます。5.0 のコントローラー クラスはより柔軟であり、基本的なクラス ライブラリを継承する必要がありません。
代表的な Index コントローラー クラスは次のとおりです。
namespace app\index\controller; class Index { public function index() { return 'hello,thinkphp!'; } }Operation
コントローラーには複数の操作 (メソッド) が含まれており、操作メソッドは URL アクセスの最小単位です。 以下は、2 つの操作メソッドを含む一般的な Index コントローラー操作メソッドの定義です。
namespace app\index\controller; class Index { public function index() { return 'index'; } public function hello($name) { return 'Hello,'.$name; } }
操作メソッドではパラメーターを使用できません。オプション以外のパラメーターが定義されている場合、そのパラメーターはユーザー リクエストを通じて渡される必要があります。これは URL リクエストであり、通常は $_GET または $_POST 経由で渡されます。
ModelModel クラス
は通常、実際のビジネス ロジックとデータのカプセル化を完了し、形式に依存しないデータを返します。
ThinkPHP的模型层支持多层设计,你可以对模型层进行更细化的设计和分工,例如把模型层分为逻辑层/服务层/事件层等等。
视图
控制器调用模型类后返回的数据通过视图组装成不同格式的输出。视图根据不同的需求,来决定调用模板引擎进行内容解析后输出还是直接输出。
视图通常会有一系列的模板文件对应不同的控制器和操作方法,并且支持动态设置模板目录。
驱动
系统很多的组件都采用驱动式设计,从而可以更灵活的扩展,驱动类的位置默认是放入核心类库目录下面,也可以重新定义驱动类库的命名空间而改变驱动的文件位置。
行为
行为(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
的自动加载规范。
以上がthinkPHP5.0 フレームワークの全体的なアーキテクチャの詳細な概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

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

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

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

ホットトピック









