tailored-tunes/php-router

该包已被弃用且不再维护。未建议替代包。

轻量级路由解决方案

2.0.2 2015-06-28 14:44 UTC

This package is not auto-updated.

Last update: 2021-11-13 01:25:14 UTC


README

这是一个为PHP设计的轻量级路由库,将控制器与路由解耦。路由表仅作为路径和意图之间的翻译表。

安装

通过composer安装。安装帮助和版本信息请访问Packagist

用法

设置路由

use TailoredTunes\Router;

$router = new Router();
$router->addRoutes(
	[
		["/" => "Home#index"],
		["/login" => "Home#login"],
		["/logout" => "Home#logout"],
		["/privacy" => "Home#privacy"],
		["/magic/:var1/:var2" => "Home#magic"]
    ]
);

路径中的变量

您可以通过在路由表中添加:var概念来匹配路径变量,如上所示。这些参数将转换为处理器参数数组中的相应变量名。

处理路由

不内部处理请求的原因是您可能希望在路由和服务器之间放置一个控制器工厂。这样,路由器只会告诉你路由的意图,然后它就取决于你将其映射到控制器。

// $uri = the request uri
// $method = the request method
// $params = parameters for the request.

$requestParamBuilder = new RequestParamBuilder();
$requestParamBuilder->withEnv($_ENV)
	->withRequest($_REQUEST)
	->withCookies($_COOKIE)
	->withFiles($_FILES)
	->withServer($_SERVER)
	->withSession($_SESSION);

$params = new RequestParams($requestParamBuilder);

$handler = $router->handle($uri, $method, $params);

// serve request
call_user_func_array(array($handler->controller(), $handler->action()), $handler->parameters());