"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. 🎜>
”
! thinkphp/library/think/route/RuleItem.php
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.
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.
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.
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.
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.
L'adresse de la demande lors du passage des paramètres.
Demande d'adresse sans passer de paramètres.
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
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.
Mais lors du passage des lettres, une erreur sera signalée.
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.
Le paramétrage du routage des ressources est également très simple.
Il est également plus pratique d'utiliser la ligne de commande pour créer des fichiers.
Le contrôleur créé lui-même est un fichier 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.
Ensuite, vous arriverez à la thinkphp/library/think/route/Resource.php
classe
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é.
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.
blog/<name> 或者 blog/<name></name></name>
object(thinkrouteDomain)
ici. Il doit acheminer la première et la troisième section de l'article, et fullName sera attribué à cette étape. Revenez ensuite à la couche supérieure pour voir la chose suivante.
Après avoir défini les règles de routage du groupe, vous devez attribuer des valeurs à certains attributs, principalement les trois suivants.
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.
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
Ensuite, vous viendrez à la 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.
Jusqu'à présent, je parlerai simplement ici du routage des ressources
Enfin, Kaka vous donnera le carte cérébrale d'exécution Dessiner
$this->parent->getDomain()
Il existe une telle ligne de code dans le constructeur, qui consiste à obtenir le nom de domaine demandé
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
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.
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
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 !
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
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.
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.
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.
Lorsque vous arrivez à l'application d'initialisation, vous pouvez voir l'initialisation de l'itinéraire
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.
À 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
Puis au fin de la classe Container Plusieurs méthodes magiques existent.
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 !
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.php
import
Vous pouvez voir plusieurs règles de variables familières dans cette méthode
Utilisez ensuite ces valeurspour effectuer un test simple
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é
A ce moment, faire une visite
Oui , c'est-à-dire De cette façon, c'est si simple à utiliser
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
est également exécuté dans cette méthode
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!