Maison >cadre php >PensezPHP >qu'est-ce que le routage thinkphp

qu'est-ce que le routage thinkphp

青灯夜游
青灯夜游original
2021-12-27 11:49:484594parcourir

Dans thinkphp, le routage fait référence au mappage attribué au gestionnaire correspondant en fonction de l'URL ; sa fonction est de simplifier l'adresse d'accès à l'URL et d'effectuer une analyse correcte en fonction du type de routage défini. En termes simples, le routage est l'analyse d'un chemin. Selon le chemin soumis par le client, la demande est analysée vers le module, le contrôleur ou la méthode correspondant.

qu'est-ce que le routage thinkphp

L'environnement d'exploitation de ce tutoriel : système Windows 7, version thinkphp v5.1, ordinateur Dell G3.

Étudions le mécanisme de routage de ThinkPHP5.

Bien que le manuel de développement complet de TP5 parle très clairement du routage, nous étudions toujours le routage du TP5 dans cet article. Après tout, lire un blog est plus confortable que lire un livre.

Tout d'abord, posez trois questions :

1. Qu'est-ce que Route ?

Route fait référence au mappage attribué au gestionnaire correspondant en fonction de l'URL.

En termes simples, il s'agit d'une analyse de chemin Selon le chemin soumis par le client, la demande est analysée vers le module/contrôleur/méthode correspondant.

Le document officiel est défini ainsi => Le rôle du routage est de simplifier les adresses d'accès aux URL et d'effectuer une analyse correcte en fonction du type de routage défini.

Explication manuelle : Lorsque nous accédons habituellement à notre projet ThinkPHP selon nos habitudes, l'url habituelle doit être écrite comme ceci, (exemple local) http://localhost/project name/public/index.php /Module name /Nom du contrôleur/Nom de la méthode

Après avoir entré une chaîne d'URL, je me sentirai très désespéré, (chuchotant) => "Je veux juste tester une petite interface qui me permet de taper une si longue chaîne d'adresses. , L'adresse est trop longue et je ne m'en souviens plus...". A ce moment, on peut utiliser le routage pour simplifier son adresse, et définir quelques règles tout en raccourcissant l'adresse.

2. Pourquoi utiliser le routage ?

Certaines personnes pourront lâcher : Pour simplifier le chemin. Bien sûr, c'est l'une des raisons, mais la raison n'est pas si simple.

La simplification du chemin est une raison importante, car au début j'ai pensé que le chemin était trop long et j'ai couru pour tourner sur l'itinéraire. Mais plus tard, en l'utilisant, j'ai découvert que le rôle de l'itinéraire n'était pas limité. à simplifier le chemin.

Nous pouvons activer l'utilisation forcée des routes, afin que tout le monde ne puisse entrer que par les routes que j'ai définies. Cela présente un avantage si vous écrivez des scripts dans certains contrôleurs auxquels vous ne souhaitez pas que les utilisateurs accèdent. vous pouvez activer l'application complète de l'itinéraire. Si cette option est utilisée, les utilisateurs ne peuvent pas accéder à ces scripts. Sinon, si les utilisateurs accèdent à ces scripts et que les scripts modifient parfois la base de données, cela sera plus dangereux.

De plus, nous pouvons définir si l'entrée de ce chemin est une opération get ou une opération post, de sorte qu'il n'y aura pas de situation comme avant. Une méthode de contrôleur est accessible depuis get et post. Bien sûr, certaines personnes diront que ce n'est pas grave si get et post sont accessibles. En fait, distinguer ces méthodes est plus utile pour incarner l'idée de l'API Restful.

De même, je ne parlerai pas des réglementations http et https.

Maintenant que nous sommes là, pensez-vous que le routage est un peu magique ? Il s'avère qu'il peut faire tellement de choses, alors étudions comment l'utiliser.

Utilisation de l'itinéraire

Avant de l'utiliser, comprenons d'abord les informations de configuration C'est toujours mon projet fork Ouvrez le fichier de configuration :


Il y a deux choses à payer. attention à Tout d'abord, dans la première case rouge, tp active le mode de routage pour nous par défaut. Dans la deuxième case rouge, tp désactive l'utilisation forcée du routage par défaut. Même maintenant, je peux accéder avec succès via notre mode d'adresse habituel, et l'accès via le routage peut également réussir.

Lorsque je travaille habituellement sur des projets, je change cela en vrai pour des raisons de sécurité, alors jetons un coup d'œil à l'effet

Lorsque le routage forcé n'est pas activé :


Suivez les adresse L'accès peut être réussi, nous permettons donc maintenant l'utilisation forcée du routage :


La même adresse a signalé une erreur, et une erreur d'itinéraire non trouvé a été générée. Parce que nous n'avons pas défini cet itinéraire dans le fichier de routage, une erreur a été générée, indiquant que nous sommes maintenant obligés d'utiliser l'itinéraire.

Alors définissons-le maintenant, tout d'abord, commençons par le plus simple :


Trouvez le fichier d'itinéraire


Nous devons d'abord introduire la classe d'itinéraire ci-dessous, réfléchir, puis nous l'appelons Get méthode statique, nous pouvons facilement savoir à partir du nom de la méthode qu'elle est accessible via la méthode get, alors que représentent les premier et deuxième paramètres ? Le deuxième paramètre représente le module/contrôleur dans l'URL/méthode normale, le premier paramètre représente ? le nom que vous souhaitez utiliser pour remplacer le module/contrôleur/méthode suivant.

En d'autres termes, j'ai initialement utilisé http://localhost/xx/public/index.php/xx/test/xx pour accéder à ma méthode de contrôleur, mais maintenant je n'ai besoin que de http://localhost/xx/public/ Index .php/xx peut accéder aux méthodes de mon contrôleur.

Regardez l'effet :


Vous avez utilisé avec succès l'accès au routage, puis regardons de plus près la formulation de cette règle (par exemple, la différence entre l'accès get et post)

Je change maintenant le get méthode à la méthode post Ensuite, j'utilise la méthode get pour y accéder et voir ce qui se passe :




Vous pouvez voir que nous ne pouvons pas y accéder si nous utilisons Get Only post. pouvez y accéder. Et si vous ressentez le plaisir du routage ?

Plus profondément, nous pouvons également définir l'itinéraire comme ceci :


Le troisième paramètre représente la méthode d'accès. Le formulaire que j'ai défini ici est que les opérations get et post peuvent y accéder. Le dernier paramètre Il représente si. pour vérifier le protocole https. S'il est faux, https ne sera pas vérifié. S'il est vrai, il ne sera pas trouvé lorsque nous utiliserons http pour y accéder. De cette façon, nous pouvons protéger davantage notre interface. Quant à l’effet, je ne le démontrerai pas.

Plus

Quelle est la particularité du routage ? Le routage peut même fusionner les paramètres transmis par l'opération get dans l'url. Notre opération get originale devrait ressembler à ceci : url ? id=1. Après le routage, nous pouvons le définir comme url/1. De cette façon, même le paramètre id est masqué. Quant au processus, accédez simplement au manuel de développement et recherchez-le.

Bien sûr, le routage a également d'autres fonctions auxiliaires, telles que les fonctions de fermeture, etc. Je ne les présenterai pas une par une, car cette fonction auxiliaire n'est pas très couramment utilisée dans le processus de développement. Si c'est le cas, vous. pouvez le vérifier dans le manuel de développement complet.

L'introduction pertinente au routage et les avantages de l'utilisation du routage sont présentés ici.

【Recommandation de tutoriel connexe : thinkphp framework

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