路由

路由是一个非常独立模块,下面的特性可以使用在任何场景下。 如:http协议。websocket协议,tcp协议,udp协议…… 也可以无协议直接调用。 路由的路径匹配规则共4种:

  1. 完全匹配
  2. {id} 匹配数字
  3. {name} 匹配任意字符
  4. 正则表达式 优先级 1-4 逐渐降低。其中被{id},{name},{正则表达式}匹配的部分会作为参数传递给相应的方法。
  1. //完全匹配
  2. Router::get('/', \App\Controllers\IndexController::class . '@index');
  3. // 匹配数字 ,如: /user/1,user/223
  4. Router::get('/user/{id}', \App\Controllers\IndexController::class . '@user');
  5. // 优先级: /user/5 会批量这条 /user/1会匹配/user/{id}
  6. Router::get('/user/5', \App\Controllers\IndexController::class . '@user5');
  7. // 惰性匹配: 会匹配 /user/setting
  8. // /user/setting/password /user/setting/email /user/setting/xxx /user/setting/...
  9. // 只要当前匹配下面只有唯一一条路由 所有下面的path都会匹配上 path会传到相应的调用参数
  10. Router::get('/user/setting', \App\Controllers\IndexController::class . '@setting');
  11. // 匹配任意字符,如:a/234,/a/adsfasf
  12. Router::get('/a/{name}',\App\Controllers\IndexController::class . '@aa');
  13. // 正则表达式匹配 ,如:b/log_123
  14. Router::get('/b/`^log\_\d+$`',\App\Controllers\IndexController::class . '@bb');`