Comment utiliser FastRoute pour le routage d'URL en php ?

WBOY
Libérer: 2023-06-02 11:42:01
original
1717 Les gens l'ont consulté

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.

  1. Installez FastRoute

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"
    }
}
Copier après la connexion

Ensuite, exécutez la commande suivante pour installer :

$ composer install
Copier après la connexion
  1. Create router

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) {
    // 添加路由规则到这里来
});
Copier après la connexion

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.

  1. Définir 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');
Copier après la connexion

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.

  1. Gestion des demandes

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';
Copier après la connexion

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;
}
Copier après la connexion

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 :

  1. Installer FastRoute
  2. Créer un routeur et définir des règles de routage
  3. Traiter les requêtes et les affecter au bon routeur

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal