hunomina / http-router-php
PHP7.1或更高版本Http路由类的实现
1.3.2
2019-03-22 09:31 UTC
Requires
- php: ^7.1
- ext-json: *
- symfony/yaml: ^4.1
Requires (Dev)
- phpunit/phpunit: >7 <9
README
描述:PHP7.1或更高版本Http路由类的实现。
此库主要由4个类组成。
Router
Router 类通过调用 request(string $method, string $url) 方法来处理请求,该方法必须返回一个路由动作响应。
可以通过传递一个路由文件和类型(json, yaml... 若要添加新类型,则可扩展)来实例化。
Router::request($method, $url) 方法允许根据方法和URL参数执行基于路由的动作。
示例路由文件请参考 此处。
RouteManager
RouteManager 解析路由文件。然后,您可以通过调用 getRoutes() 方法来获取Route对象。
此类是 抽象的,因此您必须扩展它以添加新的路由文件类型(参见 JsonRouteManager 或 YamlRouteManager 作为一个例子)。
Route
Route 对象由以下属性组成
- array $_methods : 路由处理的HTTP方法数组
- string $_url : 路由的URL
- string $_pattern : 表示路由处理的URL的正则表达式
- array $_action : 包含两个元素的数组。第一个是类的全名(命名空间由冒号分隔)。第二个是您想为该路由调用的方法名称。在设置动作属性时,您必须传递一个符合此语法的字符串:classname::method。
最后,Route::call() 方法执行路由动作,它必须返回一个 Response 对象。
Response
Response 对象由以下组成
- array $_headers : HTTP头数组
- string $_content : 响应内容
此类是 抽象的,因此您必须扩展它以添加新的响应类型