PHP 路由器(Route)是可以自定義的。路由是 Web 應用程序中負責將請求映射到特定處理邏輯的重要組成部分。自定義路由器能讓你根據自己的需求來設計和實現請求的處理流程。
以下是一個簡單的 PHP 路由器示例,可以根據請求的 URL 和 HTTP 方法來調用相應的處理函數:
<?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
用于添加路由和處理函數之間的映射關系;handleRequest
用于處理來自客戶端的請求。你可以根據自己的需求擴展這個類,實現更復雜的功能,如參數捕獲、RESTful API 路由等。