routing-interop / route-definition
路由的抽象定义
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)
)不在范围内。