routing-interop / route
路由的抽象定义
0.0.5
2021-03-26 10:59 UTC
Requires
- php: >=7.4
README
安装
$ composer require routing-interop/route
使用
<?php use Interop\Routing\Route\RouteCollection; $routes = (new RouteCollection) ->get('/blog', [BlogController::class, 'index']) ->get('/blog/{slug}', [BlogController::class, 'show']) ->post('/blog', [BlogController::class, 'create']) ;
思考
-
大多数路由库使用以下路由声明格式
addRoute(<HTTP method>, <path>, <callable handler>)
-
path
可以是一个字符串、正则表达式或自定义格式。它通常包含所有变量部分或路径,类型约束。 -
每个路径部分是一个段(典型的URI语言)。
-
简单的字符串段是静态的,而其他的是动态的。
-
path
中未包含的其他路由约束- 主机
- 方案
- 端口
-
一个动态段可以是可选的,并具有默认值
-
为大量路由使用共同的静态前缀非常有用
-
声明具有相同路径但不相同方法的组路由可能很有用
-
当没有匹配到路由时应该怎么办?错误的URI,错误的请求方法...
添加默认工作流程和响应可能很有用。 -
给路由命名似乎是过时的。等等...不,它不是:我们如何在不命名的情况下生成URI呢!?
-
内容协商不在路由的范围内
-
参数转换(从
/post/{slug}
到controller(BlogPost $post)
)超出了范围。