Maison >cadre php >PensezPHP >Paramètres de routage ThinkPHP et analyse du routage des ressources

Paramètres de routage ThinkPHP et analyse du routage des ressources

咔咔
咔咔original
2020-12-01 12:01:464246parcourir
"

Le routage est une partie importante du développement d'un projet. Chaque projet utilisera le routage pour gérer les interfaces. Ensuite, cet article amènera tout le monde à apprendre le routage à partir du code source. 🎜>

1. Paramètres de routage et règles variables

Même code d'abord Démarrer. ici, mais cette fois l'accent est mis sur les paramètres de routage et les règles variables.

Ces deux points visent simplement à expliquer brièvement l'utilisation et le processus d'exécution simple.

Je ne l'expliquerai pas pour une compréhension plus approfondie, car ces deux points ne sont pas souvent utilisés dans le processus de développement habituel.

Paramètres de routage ThinkPHP et analyse du routage des ressourcesEnregistrer les règles de routage
Rappelons plus haut que nous avons vu l'utilisation des paramètres de routage dans le fichier

! thinkphp/library/think/route/RuleItem.php

Paramètres de routage ThinkPHP et analyse du routage des ressourcesÀ propos du traitement des paramètres de routage
Et le document donne également de nombreux paramètres pris en charge, comme indiqué ci-dessous.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Paramètres supportés par le document

Ensuite, comment utiliser ce paramètre de routage !

Utilisez ensuite l'itinéraire que nous avons utilisé auparavant et configurez la détection des suffixes d'URL pour prendre en charge la correspondance de plusieurs suffixes.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Cas de routage

Alors comment devons-nous accéder à l'itinéraire que nous avons mis en place ?

Si vous accédez selon les règles de routage normales, une erreur sera signalée. Veuillez continuer à lire pour connaître la méthode d'accès correcte.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Résultats d'accès

L'adresse de demande correcte doit être http://www.source.com/index.php/hello/1.html, c'est-à-dire que l'adresse de demande doit être associée au suffixe html que nous ensemble.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Résultats d'accès

Le processus d'exécution spécifique de cette pièce peut être simplement examiné à l'aide du suivi de code. Kaka ne le démontrera pas ici.

Concernant les paramètres de routage, Kaka vous présentera un cas, et c'est essentiellement la fin.

Paramètres de routage globaux

La dernière description des paramètres de routage concerne les paramètres de routage globaux.

Allez directement sur le document pour le voir.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Paramètres de routage globaux

Ici, Kaka configure deux règles de routage pour les tests, un paramètre est facultatif et un autre est obligatoire, et les règles de routage sont définies pour ajouter un fichier suffixes.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Fichier de routage

L'adresse de la demande lors du passage des paramètres.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Résultat d'accès

Demande d'adresse sans passer de paramètres.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Résultats d'accès

Ce qui précède est ce qui est écrit pour les paramètres de routage.

Il n'y a pas d'explication particulièrement détaillée. Cela explique essentiellement comment l'utiliser. Cette chose existe, alors comprenez-la simplement.

Règles variables

Les mêmes règles variables, elles sont encore plus indisponibles dans le travail de développement quotidien de Kaka.

Règles variables Kaka estime que le seul avantage est de filtrer les paramètres.

C'est-à-dire que les règles variables sont des comportements qui n'existent que lorsque les règles de routage ont des paramètres.

Kaka vous fournira ici un cas simple.

Boîtier de démonstration

Paramètres de routage ThinkPHP et analyse du routage des ressources
Cas de démonstration du fichier de routage

Ajouter des paramètres après l'itinérairepattern

Voyons ensuite comment rédiger cette requête.

Les paramètres entrants peuvent être générés lorsque les paramètres sont des nombres.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Demander l'adresse pour la première fois

Mais lors du passage des lettres, une erreur sera signalée.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Imprimer les résultats

La règle variable consiste donc à filtrer les paramètres après la règle de routage, qui est traitée à l'aide d'expressions régulières.

Jusqu'à présent, les paramètres de routage et les règles variables sont simplement mentionnés ici.

Bien que le contenu soit très simple, la plupart d'entre eux sont des cas d'utilisation pour présenter comment l'utiliser, et il n'y a pas d'étude approfondie du code source.

Tout d’abord, je ne l’utilise pas beaucoup lors du développement quotidien.

Deuxièmement, nous devons le comprendre davantage dans l'article suivant. Voici juste une compréhension générale.

En fait, on estime que de nombreuses personnes ne comprennent toujours pas pourquoi le contenu interne peut apparaître lors de la saisie de l'adresse de routage. Nous y reviendrons en profondeur plus tard.

2. Routage des ressources

Le paramétrage du routage des ressources est également très simple.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Fichier de routage

Il est également plus pratique d'utiliser la ligne de commande pour créer des fichiers.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Utilisez la commande pour créer le fichier

Le contrôleur créé lui-même est un fichier de routage de ressources.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Contrôleur de routage de ressources

Ensuite, la méthode de ressource du fichier Route sera toujours exécutée.

Cette méthode aura également des règles de routage, des adresses de routage, des paramètres de routage et des règles variables.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Enregistrer le routage des ressources

Ensuite, vous arriverez à la thinkphp/library/think/route/Resource.phpclasse

Dans cette classe, effectuez quelques affectations d'attributs simples dans temps .

Ensuite, il y a l'endroit encerclé par Kaka. Ensuite, Kaka expliquera l'endroit encerclé.

Paramètres de routage ThinkPHP et analyse du routage des ressources
thinkphp/library/think/route/Resource.php

Puisque la classe de ressources hérite de la classe RuleGroup, elle passera à thinkphp/library/think Classe /route/RuleGroup.php.

Venez à l'action réalisée par cette méthode.

  • traitera simplement les règles de routage S'il y a des paramètres dans l'itinéraire, les règles de routage doivent être converties en blog/<name> 或者 blog/<name></name></name>
  • Alors $this. - >Parent explique pourquoi il se trouve object(thinkrouteDomain) ici. Il doit acheminer la première et la troisième section de l'article, et fullName sera attribué à cette étape.
  • La dernière étape consiste à attribuer une valeur à fullName. En fait, il s'agit d'attribuer la règle de routage à fullName.
Paramètres de routage ThinkPHP et analyse du routage des ressources
Définissez les règles de routage pour le groupe

Revenez ensuite à la couche supérieure pour voir la chose suivante.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Retournez au fichier de niveau supérieur et continuez à lire le code source

Après avoir défini les règles de routage du groupe, vous devez attribuer des valeurs à certains attributs, principalement les trois suivants.

  • Règles des variables de routage
  • Paramètres de routage
  • Définition de la méthode de routage REST

Il n'y a rien à dire sur l'attribution des attributs. Il vous suffit de comprendre ce que fait l'attribut correspondant.

L'étape suivante consiste à utiliser la méthode request comme valeur clé et $this comme valeur pour renvoyer une instance de cette classe, et à vérifier si cette méthode de routage est un routage d'annotation.

Le résultat renvoyé est imprimé pour que tout le monde puisse y jeter un bref coup d'œil. Le contenu n'a pas été intercepté, il vous suffit donc de savoir quelle est la valeur.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Renvoyer les résultats

Une fois ce qui précède exécuté, il reviendra à la couche supérieure pour exécuter la méthode paresseuse

Tout d'abord, sachez quel est le paramètre transmis : si l'itinéraire est retardé lors de l'analyse

Paramètres de routage ThinkPHP et analyse du routage des ressources
Après avoir exécuté le code qui revient à la couche supérieure,

Ensuite, vous viendrez à la méthode paresseuse

Paramètres de routage ThinkPHP et analyse du routage des ressources
méthode paresseuse

Dans cette méthode, parseGroupRule sera appelé et le paramètre transmis est le routage règle du groupe

Le contenu de cette section concerne le regroupement de routage, nous n'en discuterons donc pas ici.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Règles de routage de groupe

Jusqu'à présent, je parlerai simplement ici du routage des ressources

Enfin, Kaka vous donnera le carte cérébrale d'exécution Dessiner

Paramètres de routage ThinkPHP et analyse du routage des ressources
Processus d'exécution de la raison des ressources

Concernant le moment où le nom de domaine a été défini

En fait, il existe une ligne de code comme celle-ci dans la section précédente

$this->parent->getDomain()

Cette ligne de code est connue grâce au nom de la méthode pour obtenir le nom de domaine demandé

Mais il l'est. Savez-vous où est défini ce nom de domaine ?

Lorsque vous demanderez cette route de ressources, le constructeur de la classe Route sera exécuté

Paramètres de routage ThinkPHP et analyse du routage des ressources
Routage des ressources

Il existe une telle ligne de code dans le constructeur, qui consiste à obtenir le nom de domaine demandé

Paramètres de routage ThinkPHP et analyse du routage des ressources
Constructeur

viendra à la méthode hôte

Dans la méthode hôte, ce paramètre est vrai

Il vous suffit de faire attention à $this->server('HTTP_HOST') ici, qui sert à obtenir le nom de domaine Le

de l'adresse est visible en deuxième lieu entouré du clic La première condition est établie, mais la deuxième condition n'est pas établie

, il reviendra donc directement à l'étape précédente pour l'obtenir. La $this->host

Paramètres de routage ThinkPHP et analyse du routage des ressources
méthode hôte

imprime $this->host Pourquoi elle est exécutée deux fois. ici ne sera pas expliqué. Si vous avez des questions, vous pouvez l'utiliser Fonction debug_backtrace pour voir.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Imprimer les résultats

Ensuite, la méthode d'initialisation du nom de domaine par défaut sera exécutée

C'est-à-dire que le nom de domaine est initialisé ici

Paramètres de routage ThinkPHP et analyse du routage des ressources
Initialiser la méthode du nom de domaine par défaut

A ce moment, il y aura encore des doutes car elle est évidemment exécutée dans la classe thinkphp/library/think/route/Resource.php !

La définition de l'adresse du nom de domaine est dans la classe thinkphp/library/think/Route.php !

Dès qu'on y réfléchit, on comprend que c'est à cause du lien d'héritage !

Paramètres de routage ThinkPHP et analyse du routage des ressources
thinkphp/library/think/route/Resource.php

Ensuite, le paramétrage de ce nom de domaine devrait être très clair à ce stade, si vous Je ne comprends pas. Lisez simplement d'autres articles écrits par Kaka !

Kaka Il faut plusieurs heures pour écrire un article, mais il ne vous faut que quelques minutes pour le lire. Que peut-on lire en quelques minutes !

Ralentissez avec le code, ce que vous voulez c'est la qualité, pas l'efficacité !

Donc jusqu'à présent, nous avons fini d'expliquer quand le nom de domaine a été défini. Ensuite, nous expliquerons la configuration du tableau de configuration de routage

4. . Configuration du routage - Interprétation de la configuration du mode tableau

En fait, on estime que beaucoup de gens seront un peu confus après avoir lu ceci.

La plupart des gens ne comprennent pas ce que cela signifie et où se trouve cette chose !

En fait, cette configuration n'était disponible qu'après la 5.1. Cette configuration n'existait pas dans la version précédente de Kaka.

L'emplacement de cette configuration est en fait à l'intérieur de la Route que nous avons étudiée. Je ne m'y attendais pas ! C'est juste aussi puissant.

est le retour dans la configuration du routage.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Fichier de configuration de routage

Revoyons le chargement du fichier de routage !

Le premier est le dossier d'entrée, cela ne fait aucun doute.

La zone encerclée renverra l'instance d'App. Si vous ne comprenez pas, vous pouvez lire l'article sur les conteneurs.

Cette ligne de code sera donc exécutée dans la méthode run de la classe App.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Fichier d'entrée

Jetons ensuite un œil à la méthode d'exécution de thinkphp/library/think/App.php cette classe.

Ce que vous pouvez voir directement, c'est l'application d'initialisation.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Application d'initialisation

Lorsque vous arrivez à l'application d'initialisation, vous pouvez voir l'initialisation de l'itinéraire

Paramètres de routage ThinkPHP et analyse du routage des ressources
Route initialisation

Venez à la méthode routeInit

Lors de l'importation de la configuration de routage, elle est jugée une fois. Le jugement ici est basé sur la configuration du tableau dans le fichier de configuration de routage.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Importer la configuration de routage

À ce stade, vous devriez avoir une certaine compréhension du moment où la configuration de routage est chargée.

Mais il n'y a aucune mention dans le document sur la configuration du routage en mode tableau, ce qui signifie qu'il n'y a aucun cas d'utilisation.

Nous devons donc suivre cette méthode import pour le suivi.

Découvrez simplement comment l'utiliser.

Ici, Kaka donne une explication sur la $this->route->import($rules); ligne de code.

est en fait $this->route pourquoi la classe Route peut être exécutée.

Tout d'abord, ce qu'il faut savoir c'est que la classe App hérite de la classe Container

Paramètres de routage ThinkPHP et analyse du routage des ressources
Relation d'héritage

Puis au fin de la classe Container Plusieurs méthodes magiques existent.

Paramètres de routage ThinkPHP et analyse du routage des ressources
Méthode magique du conteneur

Cette méthode magique __get sera exécutée lorsque la classe Route qui n'existe pas est appelée dans l'application.

Ensuite, la méthode make de la méthode magique __get sera exécutée.

Concernant cette méthode, Kaka l'a dit pas moins de trois fois. Vous pouvez lire l'article sur les conteneurs !

Paramètres de routage ThinkPHP et analyse du routage des ressources
La méthode make dans la classe conteneur

Puis nous continuons notre marche et arrivons aux règles de routage et aux méthodes d'importation des fichiers de configuration dans thinkphp/library/think/Route.phpimport

Vous pouvez voir plusieurs règles de variables familières dans cette méthode

Utilisez ensuite ces valeurs​​pour effectuer un test simple

Paramètres de routage ThinkPHP et analyse du routage des ressources
Détecter le fichier de configuration importé Le les règles de routage

ont expliqué le routage des ressources dans la deuxième section, alors utilisez la vérification du routage des ressources comme condition pour tester

Assurez-vous de définir les ressources précédemment définies Le routage la configuration est désactivée, sinon le test ne peut pas être effectué

Paramètres de routage ThinkPHP et analyse du routage des ressources
Fichier de configuration de routage

A ce moment, faire une visite

Oui , c'est-à-dire De cette façon, c'est si simple à utiliser

Paramètres de routage ThinkPHP et analyse du routage des ressources
Résultats d'accès

En fait, le routage de configuration de la méthode tableau est le même que le routage des ressources , mais l'ordre d'exécution C'est tout

Au final, les règles de routage sont transmises à la méthode ressource via une boucle

Paramètres de routage ThinkPHP et analyse du routage des ressources
La ressource

est également exécuté dans cette méthode

Paramètres de routage ThinkPHP et analyse du routage des ressources
méthode ressource

Cette section en parlera brièvement, principalement pour avoir une certaine compréhension de l'initialisation de la route

et apprenez à utiliser les tableaux de routage Configuration de la méthode

Cette méthode n'est pas souvent utilisée dans la version précédente, 5.1 ou la version publiée 6.0, ou on peut dire qu'elle ne sera pas utilisée du tout

Je le mentionne ici juste pour revoir le processus d'initialisation du routage et savoir ce que fait le routage de configuration du tableau

Si vous avez des questions, vous devriez les résoudre au lieu de les laisser sans solution

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!

Déclaration:
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