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 路由等。