争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

route完成路由技巧(route设置路由)

时间:2024/11/20作者:未知来源:争怎路由网人气:

GitHub地址:https://github.com/nikic/FastRoute/tree/v1.3.0

引入nikic/fast-route包

# 本次引入的是1.3.0版本的composer包 composer require nikic/fast-route v1.3.0

编写路由配置加载方法

dispatch($httpMethod, $uri); switch ($routeInfo[0]) { case Dispatcher::NOT_FOUND: // 找不到请求方法 // ... 404 Not Found throw new RouteNotFoundException("请求方法不存在:{$uri}"); break; case Dispatcher::METHOD_NOT_ALLOWED: // 请求类型错误 $allowedMethods = $routeInfo[1]; // ... 405 Method Not Allowed throw new MethodNotAllowedException("请求类型错误({$httpMethod}),当前方法允许请求类型({$allowedMethods[0]})"); break; case Dispatcher::FOUND: // 找到请求方法:调用方法即可 $handler = $routeInfo[1]; $vars = $routeInfo[2]; call_user_func([new $handler[0],$handler[1]],$vars); break; } } private static function make_dispatcher($routeFileList) { return simpleDispatcher(function(RouteCollector $router) use($routeFileList) { foreach ($routeFileList as $routeFile) { if (isset($routeFile['prefix'])) { $routers = $routeFile[0]; $router->addGroup($routeFile['prefix'],function(RouteCollector $router) use($routers) { if ($routers) { foreach ($routers as $routeItem) { $router->addRoute(strtoupper($routeItem[0]),$routeItem[1],$routeItem[2]); } unset($routeItem); } }); } else { if ($routeFile) { foreach ($routeFile as $routeItem) { $router->addRoute(strtoupper($routeItem[0]),$routeItem[1],$routeItem[2]); } unset($routeItem); } } } unset($routeFile); }); } }

涉及到的exception类写法

创建编写功能路由文件,(演示:route/web.php、route/api.php)


文件的编写格式(可以对Route文件的make_dispatcher方法实现自定义)

'/', [ ['get','users',[\App\Controller\TestController::class,'index']], ] ];

测试

测试控制器

路由访问

?

由此,引入路由组件成功。????
注:如果想扩展更多的使用方法,请访问文章开始处的github地址,查看更多使用方法。



关键词:route完成路由技巧(route设置路由)




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版