laravel重构路由、重构route.php,进行路由分离
来源:互联网 发布:喜纳昌吉 知乎 编辑:程序博客网 时间:2024/05/16 12:29
路由,我们直接参照官网的文档接口,主要涉及2个文件:app/Http/routes.php// 我们定义的路由app/Providers/RouteServiceProvider.php// 路由服务,会载入定义的路由文件(上面的routes.php)基本用法,参考文档。今天记录的主要目的是:对于整个项目,所有的路由,都写在 'routes.php' 中,文件太大,而且很不清晰。我们根据业务,按目录来划分路由文件!分析 RouteServiceProvider.phppublic function map(Router $router) { /* 很清楚的看到,这里已经使用过 'group' 路由群组了,而且: namespace = App\Http\Controllers// 这也就是我们在routes.php 直接写 Controllers/ 之后的原因 */ $router->group(['namespace' => $this->namespace], function ($router) { require app_path('Http/routes.php'); }); }开始重构:1.在app/Http/下,创建 'Routes' 目录2.自定义方法: protected function mapCustomWebRoutes(Router $router) { $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', ], function ($router) { $route_files = glob(app_path() . '/Http/Routes/*.php'); foreach($route_files as $filename){ require_once($filename); } }); } 3.将我们自定义的方法,添加到 map() 方法中: public function map(Router $router) { $router->group(['namespace' => $this->namespace], function ($router) { require app_path('Http/routes.php'); }); $this->mapCustomWebRoutes($router); }
/* 上面的重构,出现了一个问题: 我的验证机制,都记录不到了错误输出!!(折腾了好久!) */各种调试,都不清楚什么原因,确实有错误,考虑session中也生成了错误,但是就是再次进入页面,不显示!这种情况,觉得,只有可能是中间件的问题。web中间件组,包含了 'ShareErrorsFromSession' 中间件,就是分配错误的!将拆分出来的路由,重新移入 'routes.php',就可以显示验证错误了!然后查看重构的逻辑,发现: $router->group([ 'namespace' => $this->namespace, 'middleware' => 'web', /* 这里我为了不让每个文件内部再次写 'web',直接在最外层已经使用了 'web'。然而,我的每个文件内,再次写入了web google搜索,2次web中间件,可能出现了2次不同的session!,导致认证不了!(可能是这个情况,英文没仔细看,记得好像有类似的意思!) */ ], function ($router) { $route_files = glob(app_path() . '/Http/Routes/*.php'); foreach($route_files as $filename){ require_once($filename); } });
阅读全文
0 0
- laravel重构路由、重构route.php,进行路由分离
- Laravel-学习笔记-路由(Route)
- NodeJS之重构Express路由
- Laravel Nginx下配置路由 404 重定向 去index.php的rewrite的规则
- ubuntu 静态路由 route 重启继续生效
- laravel 前后台路由分离
- laravel前后台路由分离
- php路由相关(url重定向)
- 路由策略之重分发路由协议时利用route-map过滤
- 路由重分发
- 路由重分布笔记
- 路由重分发
- curl 重启路由
- MVC 路由重定向
- 路由重分布概念
- 【重拾】nodeJS路由
- post路由重启
- 路由重发布
- android自定义控件,动态设置Button的样式
- grpc-整合gradle与代码生成
- 萌新的linux之旅2
- dup和dup2函数解析
- 监督学习or无监督学习 区别
- laravel重构路由、重构route.php,进行路由分离
- Silver Cow Party(最短路 很有意思的题)
- Passing the Message
- linux服务器安全设置
- Battle City(POJ
- 出现对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。的解决办法
- UML类图
- 面试题七 C/C++ 两个字符串由数字组成的相加,最大不超过32bit整形的系统函数--程序员面试题
- 【二分图】poj 2536 Gopher II