PHP は広く使用されているサーバーサイド スクリプト言語であり、多くの Web アプリケーションは PHP を使用して開発されています。 Web アプリケーションでは、ルーティングは不可欠なコンポーネントです。ルーティングの目的は、ブラウザからのリクエストを適切なコントローラーまたはハンドラーに分配することです。
PHP8.0 は PHP の最新バージョンであり、多くの新機能と改善が加えられており、そのうちの 1 つはルーティングです。 PHP8.0 のルーティング ライブラリは、Web 開発者がルーティング機能をより簡単に実装できるようにする強力なライブラリです。
このルーティング ライブラリの名前は FastRoute で、高速で柔軟なルーティング ライブラリです。その目標は、高速で信頼性の高いルーティング ソリューションを提供することです。 FastRoute は、RESTful ルーティング、動的ルーティング、パラメータ マッチング、正規表現ルーティングなどの機能をサポートします。
FastRoute を使用してルーティング機能を実装する方法を見てみましょう。まず、PHP プロジェクトに FastRoute ライブラリをインストールする必要があります。 Composer を使用してインストールできます。
composer require nikic/fast-route
次に、ルーター クラスを作成し、いくつかのルーティング ルールを定義する必要があります。これらのルーティング ルールにより、Web アプリケーションでリクエストがどのように処理されるかが決まります。
次に、単純なルーター クラスの例を示します。
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; } } }
上の例では、Router という名前のクラスを作成し、FastRoute の RouteCollector インスタンスに渡しました。このクラスには 3 つのメソッドがあります:
次に、いくつかのルーティング ルールを定義し、ルーターに追加します。たとえば、次のようになります。
$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'); }) );
上の例では、4 つのルーティング ルールを定義しました。 1 つ目はユーザー情報を表示する GET リクエスト、2 つ目はユーザー情報を更新する POST リクエスト、3 つ目はユーザー情報を削除する DELETE リクエスト、最後の 1 つは About Us ページを表示する GET リクエストです。これらのルーティング ルールはすべて、動的ルーティングとパラメータ ({id:d} など) を使用しており、URL から変数を抽出して、処理のためにコントローラに渡すことができます。
次に、この Router クラスを使用して HTTP リクエストを処理できます。例:
$router->dispatch($_SERVER['REQUEST_METHOD'], $_SERVER['REQUEST_URI']);
上記のコードでは、$_SERVER['REQUEST_METHOD'] と $_SERVER['REQUEST_URI'] を使用してリクエストの HTTP メソッドと URI を取得し、それらをディスパッチ メソッドに渡します。加工用です。リクエストの HTTP メソッドと URI に基づいて、ルーターは適切なコントローラーとハンドラーを呼び出してリクエストを処理します。
概要:
ルーティングは Web アプリケーションの重要なコンポーネントであり、アプリケーションがブラウザからのリクエストをどのように処理するかを決定します。 FastRoute は、RESTful ルーティング、動的ルーティング、パラメータ マッチング、正規表現ルーティングなどの多くの機能を提供する、高速で柔軟なルーティング ライブラリです。 PHP8.0 の FastRoute ライブラリを使用すると、ルーティング機能をより簡単に実装し、Web アプリケーションの効率と信頼性を向上させることができます。
以上がPHP8.0のルーティングライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。