


Présentation détaillée de l'architecture globale du framework thinkPHP5.0
Cet article présente principalement l'architecture globale du framework thinkPHP5.0, et présente brièvement les applications, les modules, le MVC, les pilotes, les comportements et l' espace de noms de thinkPHP5. 0 et d'autres concepts et utilisations de base, les amis dans le besoin peuvent se 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 basée sur MVC (Modèle-Vue-Contrôleur) Venez vous organiser.
MVC est un modèle de conception qui impose la séparation de l'entrée, du traitement et de la sortie de l'application. À l'aide de MVC, une application est divisée 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 URL de
5.0 est déterminé par le routage. Si le routage est désactivé ou s'il n'y a pas d'itinéraire correspondant, il est basé sur : serverName/index .php (ou autres
fichiers d'entrée d'application)/module/controller/operation/parameter/value...Il est nécessaire de comprendre certains des éléments suivants concepts, qui peuvent être Il sera mentionné fréquemment dans le contenu suivant.
Fichier d'entréeLe fichier PHP demandé par l'utilisateur, chargé de traiter le index.php
cycle de vieadmin.php
d'une requête (attention, pas nécessairement une URL demande), et enfin Le fichier d'entrée commun est think
Parfois, de nouveaux fichiers d'entrée sont ajoutés pour certains besoins particuliers, comme un fichier d'entrée
. .
ApplicationL'application dans ThinkPHP est un thinkApp
objetAPP_PATH
qui gère l'architecture et le cycle de vie du système. Il est complété par la classe
) 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.
ModuleUne 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.
bibliothèque de classesfichiers.
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,
<🎜. >Contrôleur
Chaque module possède une bibliothèque de classes MVC indépendante et un fichier de configuration. Il existe plusieurs contrôleurs sous un module chargé de répondre aux demandes, et chaque contrôleur est en fait un contrôleur distinct. classe. 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!'; } }
Opération
Un contrôleur contient plusieurs opérations (méthodes), méthodes de fonctionnement Il est la plus petite unité d’accès 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; } }
Modèle
complète généralement la logique métier réelle et l'encapsulation des données, et renvoie 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 requête
de la base de données réelle est effectuée. Oui Une vraie connexion paresseuse.
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
的自动加载规范。
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Alipay Php ...

JWT est une norme ouverte basée sur JSON, utilisée pour transmettre en toute sécurité des informations entre les parties, principalement pour l'authentification de l'identité et l'échange d'informations. 1. JWT se compose de trois parties: en-tête, charge utile et signature. 2. Le principe de travail de JWT comprend trois étapes: la génération de JWT, la vérification de la charge utile JWT et l'analyse. 3. Lorsque vous utilisez JWT pour l'authentification en PHP, JWT peut être généré et vérifié, et les informations sur le rôle et l'autorisation des utilisateurs peuvent être incluses dans l'utilisation avancée. 4. Les erreurs courantes incluent une défaillance de vérification de signature, l'expiration des jetons et la charge utile surdimensionnée. Les compétences de débogage incluent l'utilisation des outils de débogage et de l'exploitation forestière. 5. L'optimisation des performances et les meilleures pratiques incluent l'utilisation des algorithmes de signature appropriés, la définition des périodes de validité raisonnablement,

L'application du principe solide dans le développement de PHP comprend: 1. Principe de responsabilité unique (SRP): Chaque classe n'est responsable d'une seule fonction. 2. Principe ouvert et ferme (OCP): les changements sont réalisés par extension plutôt que par modification. 3. Principe de substitution de Lisch (LSP): les sous-classes peuvent remplacer les classes de base sans affecter la précision du programme. 4. Principe d'isolement d'interface (ISP): utilisez des interfaces à grain fin pour éviter les dépendances et les méthodes inutilisées. 5. Principe d'inversion de dépendance (DIP): les modules élevés et de bas niveau reposent sur l'abstraction et sont mis en œuvre par injection de dépendance.

L'article traite de la liaison statique tardive (LSB) dans PHP, introduite dans PHP 5.3, permettant une résolution d'exécution de la méthode statique nécessite un héritage plus flexible. Problème main: LSB vs polymorphisme traditionnel; Applications pratiques de LSB et perfo potentiel

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Envoyant des données JSON à l'aide de la bibliothèque Curl de PHP dans le développement de PHP, il est souvent nécessaire d'interagir avec les API externes. L'une des façons courantes consiste à utiliser la bibliothèque Curl pour envoyer le post� ...

L'article traite des fonctionnalités de sécurité essentielles dans les cadres pour se protéger contre les vulnérabilités, notamment la validation des entrées, l'authentification et les mises à jour régulières.

L'article examine l'ajout de fonctionnalités personnalisées aux cadres, en se concentrant sur la compréhension de l'architecture, l'identification des points d'extension et les meilleures pratiques pour l'intégration et le débogage.
