路由
路由是一个非常独立模块,下面的特性可以使用在任何场景下。 如:http协议。websocket协议,tcp协议,udp协议…… 也可以无协议直接调用。 路由的路径匹配规则共4种:
完全匹配
{id}
匹配数字{name}
匹配任意字符正则表达式
优先级 1-4 逐渐降低。其中被{id}
,{name}
,{正则表达式}
匹配的部分会作为参数传递给相应的方法。
//完全匹配
Router::get('/', \App\Controllers\IndexController::class . '@index');
// 匹配数字 ,如: /user/1,user/223
Router::get('/user/{id}', \App\Controllers\IndexController::class . '@user');
// 优先级: /user/5 会批量这条 /user/1会匹配/user/{id}
Router::get('/user/5', \App\Controllers\IndexController::class . '@user5');
// 惰性匹配: 会匹配 /user/setting
// /user/setting/password /user/setting/email /user/setting/xxx /user/setting/...
// 只要当前匹配下面只有唯一一条路由 所有下面的path都会匹配上 path会传到相应的调用参数
Router::get('/user/setting', \App\Controllers\IndexController::class . '@setting');
// 匹配任意字符,如:a/234,/a/adsfasf
Router::get('/a/{name}',\App\Controllers\IndexController::class . '@aa');
// 正则表达式匹配 ,如:b/log_123
Router::get('/b/`^log\_\d+$`',\App\Controllers\IndexController::class . '@bb');`