PHP est un langage de script côté serveur largement utilisé et de nombreuses applications Web sont développées à l'aide de PHP. Dans les applications Web, le routage est un composant essentiel. Le but du routage est de distribuer les requêtes du navigateur au contrôleur ou gestionnaire approprié.
PHP8.0 est la dernière version de PHP, qui apporte de nombreuses nouvelles fonctionnalités et améliorations, dont le routage. La bibliothèque de routage de PHP8.0 est une bibliothèque puissante qui aide les développeurs Web à implémenter plus facilement les fonctions de routage.
Le nom de cette bibliothèque de routage est FastRoute, c'est une bibliothèque de routage rapide et flexible. Son objectif est de fournir une solution de routage rapide et fiable. FastRoute prend en charge des fonctions telles que le routage RESTful, le routage dynamique, la correspondance de paramètres et le routage d'expressions régulières.
Voyons comment utiliser FastRoute pour implémenter des fonctions de routage. Tout d’abord, nous devons installer la bibliothèque FastRoute dans le projet PHP. Il peut être installé à l'aide de Composer :
composer require nikic/fast-route
Ensuite, nous devons créer une classe de routeur et définir des règles de routage. Ces règles de routage détermineront la manière dont les demandes sont traitées dans notre application Web.
Voici un exemple de classe de routeur simple :
use FastRouteRouteCollector; class Router { private $routeCollector; public function __construct(RouteCollector $routeCollector) { $this->routeCollector = $routeCollector; } public function addRoute($httpMethod, $route, $handler) { $this->routeCollector->addRoute($httpMethod, $route, $handler); } public function dispatch($httpMethod, $uri) { $routeInfo = $this->routeCollector->dispatch($httpMethod, $uri); switch ($routeInfo[0]) { case FastRouteDispatcher::NOT_FOUND: // handle 404 Not found break; case FastRouteDispatcher::METHOD_NOT_ALLOWED: // handle 405 Method not allowed break; case FastRouteDispatcher::FOUND: $handler = $routeInfo[1]; $vars = $routeInfo[2]; // call $handler with $vars break; } } }
Dans l'exemple ci-dessus, nous avons créé une classe appelée Router et l'avons transmise à l'instance RouteCollector de FastRoute. Cette classe a trois méthodes :
Ensuite, nous pouvons définir certaines règles de routage et les ajouter au routeur, par exemple :
$router = new Router( FastRoutesimpleDispatcher(function(FastRouteRouteCollector $r) { $r->addRoute('GET', '/user/{id:d+}', 'UserController@show'); $r->addRoute('POST', '/user/{id:d+}', 'UserController@update'); $r->addRoute('DELETE', '/user/{id:d+}', 'UserController@delete'); $r->addRoute('GET', '/about', 'AboutController@index'); }) );
Dans l'exemple ci-dessus, nous avons défini quatre règles de routage. La première est une requête GET pour afficher les informations utilisateur, la seconde est une requête POST pour mettre à jour les informations utilisateur, la troisième est une requête DELETE pour supprimer les informations utilisateur et la dernière est une requête GET pour afficher la page À propos de nous. Ces règles de routage utilisent toutes un routage dynamique et des paramètres (tels que {id:d+}), qui peuvent extraire des variables de l'URL et les transmettre au contrôleur pour traitement.
Ensuite, nous pouvons utiliser cette classe Router pour gérer les requêtes HTTP. Par exemple :
$router->dispatch($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);
Dans le code ci-dessus, nous avons utilisé $_SERVER['REQUEST_METHOD'] et $_SERVER['REQUEST_URI'] pour obtenir la méthode HTTP et l'URI de la requête, et les transmettre à la méthode de répartition pour traitement. En fonction de la méthode HTTP et de l'URI de la requête, le routeur appellera les contrôleurs et gestionnaires appropriés pour traiter la requête.
Résumé :
Le routage est un élément clé d'une application Web, il détermine la manière dont l'application gère les requêtes du navigateur. FastRoute est une bibliothèque de routage rapide et flexible qui fournit de nombreuses fonctionnalités, notamment le routage RESTful, le routage dynamique, la correspondance de paramètres et le routage d'expressions régulières. Grâce à la bibliothèque FastRoute de PHP8.0, nous pouvons implémenter plus facilement les fonctions de routage et améliorer l'efficacité et la fiabilité des applications Web.
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!