PHP 路由器(Route)是可以自定義的。路由是 Web 應(yīng)用程序中負(fù)責(zé)將請求映射到特定處理邏輯的重要組成部分。自定義路由器能讓你根據(jù)自己的需求來設(shè)計和實現(xiàn)請求的處理流程。
以下是一個簡單的 PHP 路由器示例,可以根據(jù)請求的 URL 和 HTTP 方法來調(diào)用相應(yīng)的處理函數(shù):
<?php
class Router {
private $routes = [];
public function addRoute($route, $handler) {
$this->routes[$route] = $handler;
}
public function handleRequest($request) {
$uri = parse_url($request, PHP_URL_PATH);
$method = $_SERVER['REQUEST_METHOD'];
if (array_key_exists($uri, $this->routes)) {
return $this->routes[$uri]($request);
} else {
return "404 Not Found";
}
}
}
$router = new Router();
$router->addRoute('/', function ($request) {
return "Hello, World!";
});
$router->addRoute('/user/profile', function ($request) {
return "User Profile";
});
$router->addRoute('/user/settings', function ($request) {
return "User Settings";
});
$request = "GET /user/profile HTTP/1.1\r\nHost: example.com\r\n\r\n";
echo $router->handleRequest($request);
這個示例中的 Router
類有兩個方法:addRoute
用于添加路由和處理函數(shù)之間的映射關(guān)系;handleRequest
用于處理來自客戶端的請求。你可以根據(jù)自己的需求擴展這個類,實現(xiàn)更復(fù)雜的功能,如參數(shù)捕獲、RESTful API 路由等。