在PHP MVC框架中,路由功能通常是通過一個路由器(router)類來實現的。路由器負責將URL映射到對應的控制器和操作(方法)。以下是一個簡單的示例:
class Router {
protected $routes = [];
public function addRoute($url, $controller, $action) {
$this->routes[$url] = ['controller' => $controller, 'action' => $action];
}
public function route($url) {
if (array_key_exists($url, $this->routes)) {
$controller = $this->routes[$url]['controller'];
$action = $this->routes[$url]['action'];
// 實例化控制器并調用對應方法
$controllerInstance = new $controller();
$controllerInstance->$action();
} else {
// 處理路由不存在的情況
echo "404 Not Found";
}
}
}
$router = new Router();
$router->addRoute('/', 'HomeController', 'index');
$router->addRoute('/about', 'AboutController', 'index');
// 其他路由規則
$router->route($_SERVER['REQUEST_URI']);
在上面的示例中,當用戶訪問網站根目錄(/)時,會調用HomeController的index方法;訪問/about時,會調用AboutController的index方法。
通過這種方式,可以實現將URL映射到對應的控制器和操作,實現路由功能。當然,實際開發中可能還需要考慮路由的優先級、參數傳遞等更復雜的情況。