Dans le développement Web moderne, le routage est un élément inévitable. Le routage sert de pont entre les pages Web et les applications, connectant les requêtes HTTP et les opérations spécifiques dans l'application. Le but du routage est de mapper les requêtes URL entrantes vers les gestionnaires appropriés afin que nous puissions initialiser une page ou effectuer d'autres opérations basées sur la requête URL. En PHP, le système de routage est généralement implémenté à l'aide d'une bibliothèque tierce appelée « FastRoute ».
FastRoute est une bibliothèque de routage PHP hautes performances. Il peut gérer un grand nombre de règles de routage et utiliser un analyseur personnalisé pour générer des tables de routage rapides. Cet article explique comment utiliser FastRoute pour le routage d'URL.
Tout d'abord, bien sûr, installez FastRoute. Nous pouvons utiliser Composer pour installer FastRoute. Ajoutez la ligne suivante dans le fichier composer.json :
{ "require": { "nikic/fast-route": "^1.3" } }
Ensuite, exécutez la commande suivante pour installer :
$ composer install
Nous devons créer un routeur pour gérer tout le routage des URL. Le routeur est le composant principal du système de routage FastRoute et est responsable du traitement de toutes les requêtes URL entrantes et de leur mappage vers le gestionnaire approprié.
Tout d’abord, créons un fichier appelé « routes.php » dans le répertoire racine du projet pour stocker tout le code de routage.
Au-dessus de ce fichier, ajoutez le code suivant pour définir l'espace de noms :
<?php namespace MyApp; use FastRouteRouteCollector; $dispatcher = FastRoutesimpleDispatcher(function(RouteCollector $r) { // 添加路由规则到这里来 });
Dans ce code, nous créons l'instance de planificateur de FastRoute. Dans cet exemple, nous utilisons la fonction simpleDispatcher pour configurer FastRoute afin qu'il utilise le résolveur de route par défaut et le lie à une variable appelée "$dispatcher".
Le constructeur reçoit une fonction anonyme qui doit configurer toutes les règles de routage à l'aide d'une instance RouteCollector. RouteCollector est le composant principal du coffre-fort de routage FastRoute. Nous l'utiliserons pour ajouter toutes les règles de routage.
Lors de l'ajout de règles de routage, vous avez généralement besoin de deux paramètres : la méthode HTTP et le chemin de routage. La méthode HTTP peut être GET, POST, PUT ou DELETE, etc. Le chemin de routage fait référence au chemin de l’URL entrante. Nous pouvons utiliser des espaces réservés pour capturer des fragments dynamiques d'URL.
Ce qui suit est un exemple d'ajout de règles de routage :
$r->addRoute('GET', '/user/{id:d+}', 'UserController@get');
Dans cet exemple, nous spécifions une méthode HTTP comme GET, et le chemin de routage demandé est /user/{id:d+}. Notez que nous utilisons l'espace réservé {id} entre { } pour définir l'itinéraire. Cet espace réservé capture la partie dynamique du chemin de la demande.
Enfin, on passe le nom du contrôleur et le nom de la méthode à exécuter comme derniers paramètres à la route. Dans cet exemple, nous utilisons "UserController@get" pour représenter le contrôleur et la méthode get de la page utilisateur.
Nous avons terminé la configuration du routeur et des règles de routage, nous devons maintenant écrire le code pour gérer les demandes d'URL. Nous devons vérifier chaque demande et l'attribuer au bon routeur. FastRoute fournit un composant appelé « Dispatcher » pour accomplir cette tâche. Chaque requête est gérée par le composant Dispatcher.
Tout d'abord, nous devons initialiser le Dispatcher en introduisant le fichier de règles de routage dans le projet. Vous pouvez ajouter le code suivant dans le fichier index.php :
<?php require_once __DIR__ . '/vendor/autoload.php'; $dispatcher = require_once __DIR__ . '/routes.php';
Cela attribuera la variable $route que nous avons définie dans le fichier "routes.php" à la variable $dispatcher. Désormais, nous pouvons utiliser Dispatcher pour gérer les demandes. Ajoutez le code suivant dans le fichier index.php :
$routeInfo = $dispatcher->dispatch($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']); switch ($routeInfo[0]) { case FastRouteDispatcher::NOT_FOUND: // 处理404错误 break; case FastRouteDispatcher::METHOD_NOT_ALLOWED: // 处理不允许的HTTP方法 break; case FastRouteDispatcher::FOUND: // 处理请求 break; }
Dans ce code, nous utilisons la méthode de dispatch de $dispatcher pour transmettre la requête au routeur. Cette fonction renvoie un tableau contenant trois éléments : la méthode HTTP correspondant au routeur, le chemin de routage et le gestionnaire du routeur. En fonction des résultats de correspondance du routeur, nous pouvons utiliser une instruction switch pour gérer différents types de requêtes.
Maintenant, nous avons terminé les étapes de routage à l'aide de FastRoute. Nous avons créé le routeur et ajouté des règles de routage, défini comment gérer les demandes et savons comment gérer les résultats de correspondance d'itinéraire.
Résumé
Dans cet article, nous avons présenté comment utiliser FastRoute pour le routage d'URL. Le processus se compose de trois étapes :
FastRoute est une bibliothèque de routage PHP facile à utiliser et hautes performances. . En raison de son avantage en termes de rapidité et de commodité de développement, FastRoute est devenu une méthode privilégiée dans le développement PHP. Dans un environnement de production réel, nous pouvons également ajouter une mise en cache pour améliorer les performances de routage.
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!