Présentation de l'architecture globale du framework thinkPHP5.0 [application, module, MVC, pilote, comportement, espace de noms, etc.]

不言
Libérer: 2023-03-30 12:38:01
original
1467 Les gens l'ont consulté

Cet article présente principalement l'architecture globale du framework thinkPHP5.0 et présente brièvement les concepts et l'utilisation de base des applications, modules, MVC, pilotes, comportements, espaces de noms thinkPHP5.0, etc. Les amis qui en ont besoin peuvent s'y référer

Cet article décrit l'architecture globale du framework thinkPHP5.0. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

L'application ThinkPHP5.0 est organisée sur la base de MVC (Model-View-Controller).

MVC est un modèle de conception qui impose la séparation de l'entrée, du traitement et de la sortie d'une application. Les applications utilisant MVC sont divisées en trois composants principaux : le modèle (M), la vue (V) et le contrôleur (C), chacun gérant ses propres tâches.

L'accès à l'URL 5.0 est déterminé par le routage Si le routage est désactivé ou s'il n'y a pas de route correspondante, il est basé sur :

http://serverName/index. .php (ou autres fichiers d'entrée d'application)/module/controller/operation/parameter/value...

Il est nécessaire de comprendre certains des concepts suivants, qui peuvent être souvent mentionnés dans ce qui suit contenu et.

Fichier d'entrée

Le fichier PHP demandé par l'utilisateur, chargé de traiter le cycle de vie d'une requête (attention, pas nécessairement une requête URL). Le fichier d'entrée est index.php, parfois de nouveaux fichiers d'entrée sont ajoutés pour certains besoins particuliers. Par exemple, un fichier d'entrée admin.php défini séparément pour le module d'arrière-plan ou une entrée de programme de contrôleur think sont tous des fichiers d'entrée.

Application

L'application dans ThinkPHP est un objet qui gère l'architecture et le cycle de vie du système. Elle est complétée par la classe thinkApp du système. dans le fichier d'entrée. Lors de l'appel et de l'exécution, les applications avec le même répertoire d'application (APP_PATH) sont considérées comme la même application, mais une application peut avoir plusieurs fichiers d'entrée.

L'application possède son propre fichier de configuration indépendant et son propre fichier (de fonction) public.

Module

Une application typique est composée de plusieurs modules. Ces modules sont généralement un sous-répertoire sous le répertoire de l'application, et chaque module est constitué de fichiers de configuration indépendants, de fichiers publics et. fichiers de bibliothèque de classes.

5.0 prend en charge la conception d'architecture à module unique. S'il n'y a qu'un seul module sous votre application, le sous-répertoire de ce module peut être omis et modifié dans le fichier de configuration de l'application  :

'app_multi_module' =>  false,
Copier après la connexion

Contrôleur

Chaque module possède une bibliothèque de classes MVC indépendante et un fichier de configuration. Il y a plusieurs contrôles sous un seul module Le contrôleur. est chargé de répondre aux demandes, et chaque contrôleur est en fait une classe de contrôleur indépendante.

Le contrôleur est principalement responsable de la réception des requêtes, de l'appel du traitement du modèle associé et enfin de sa sortie via la vue. À proprement parler, le contrôleur ne doit pas être trop impliqué dans le traitement de la logique métier.

En fait, dans la version 5.0, le contrôleur peut être ignoré Grâce au routage, nous pouvons directement envoyer la demande à un certain modèle ou à une autre classe pour traitement.

La classe de contrôleur de 5.0 est plus flexible et n'a pas besoin d'hériter d'une bibliothèque de classes de base.

Une classe typique de contrôleur d'index est la suivante :

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'hello,thinkphp!';
  }
}
Copier après la connexion

Opération

A Le contrôleur contient plusieurs opérations (méthodes) et la méthode d'opération est la plus petite unité accessible par une URL.

Ce qui suit est la définition de la méthode de fonctionnement d'un contrôleur d'index typique, qui contient deux méthodes de fonctionnement :

namespace app\index\controller;
class Index 
{
  public function index()
  {
    return 'index';
  }
  public function hello($name)
  {
    return 'Hello,'.$name;
  }
}
Copier après la connexion

La méthode de fonctionnement peut be Aucun paramètre n'est utilisé. Si un paramètre non facultatif est défini, le paramètre doit être transmis via la requête de l'utilisateur. S'il s'agit d'une requête URL, il est généralement transmis via $_GET ou $_POST.

Modèle

Les classes de modèles complètent généralement la logique métier réelle et l'encapsulation des données, et renvoient des données indépendantes du format.

La classe de modèle n'a pas nécessairement besoin d'accéder à la base de données, et dans la conception de l'architecture 5.0, la connexion à la base de données ne sera établie que lorsque l'opération de requête de base de données réelle est effectuée, ce qui est une véritable connexion paresseuse. .

La couche modèle de ThinkPHP prend en charge la conception multicouche. Vous pouvez effectuer une conception plus détaillée et une division du travail sur la couche modèle, par exemple en divisant la couche modèle en couche/service logique. couche/couche d'événement et ainsi de suite.

Vue

Les données renvoyées après que le contrôleur appelle la classe de modèle sont assemblées dans différents formats de sortie via la vue. La vue décide d'appeler le moteur de modèle pour analyser le contenu, puis de le sortir ou de le sortir directement en fonction des différents besoins.

Les vues ont généralement une série de fichiers modèles correspondant à différents contrôleurs et méthodes de fonctionnement, et prennent en charge la configuration dynamique du répertoire des modèles.

Pilote

De nombreux composants du système adoptent une conception de pilote, qui peut être étendue de manière plus flexible. L'emplacement de la classe de pilote est placé sous le répertoire de la bibliothèque de classes principale par. par défaut Vous pouvez également redéfinir l'espace de noms de la bibliothèque de classes du pilote et modifier l'emplacement du fichier du pilote.

Comportement

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

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

// 在app_init位置侦听行为
\think\Hook::listen('app_init');
Copier après la connexion

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

// 绑定行为到app_init位置
\think\Hook::add('app_init','\app\index\behavior\Test');
Copier après la connexion

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

命名空间

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

相关推荐:

搭建自己的PHP MVC框架

thinkPHP交易详情查询功能

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!