导读:前段时间我们学习了一下Slim 容器的相关知识,从今天开始,我们学习Router的实现原理
首先我们看下Router 类的结构
Slim/Router.php
从结构可以看出,Router 实现了 RouterInterface
下面,我们先看一下RouterInterface的结构
下面详细分析一下RouterInterface 接口的内容
//定义了两个常量
const DISPATCH_STATUS = 0;
const ALLOWED_METHODS = 1;
map 方法
/**
* Add route 添加路由
*
* 以数组的形式传入http的方法
* @param string[] $methods Array of HTTP methods
* 路由的模式
* @param string $pattern The route pattern
* 可调用的一些东西
* @param callable $handler The route callable
*
* @return RouteInterface
*/
public function map($methods, $pattern, $handler);
dispatch 方法
/**
* 为http请求,调度路由
* Dispatch router for HTTP request
* 参数必须是ServerRequestInterface的对象
* @param ServerRequestInterface $request The current HTTP request object
*
* @return array
*
* @link https://github.com/nikic/FastRoute/blob/master/src/Dispatcher.php
*/
public function dispatch(ServerRequestInterface $request);
pushGroup 方法
/**
* 添加一个路由组到数组中
* Add a route group to the array
*
* 路由组模式
* @param string $pattern The group pattern
* 一个组可调用的东西
* @param callable $callable A group callable
*
* @return RouteGroupInterface
*/
public function pushGroup($pattern, $callable);
结束语:今天先到这里,明天继续