Laravel 自动加载多路由文件

600 阅读1分钟

项目背景

公司团队使用 Laravel 开发产品, Laravel 路由默认使用 /routes/web.php, 多人开发需要每个人定义自己模块的路由文件. 所以需要配置多人路由

解决方案

思路

\app\Providers\RouteServiceProvider.php 路由服务提供者文件, mapWebRoutes 函数, 返回单个路由对象, 所以循环多个文件就可以解决问题了

代码
/**
 * Notes: 自动加载 routes/web 目录下的路由
 * User: Lzm
 * Date: 2021/8/16
 * Time: 11:15
 */
protected function mapAllWebRoutes()
{
    $all_route_file = scandir(base_path('routes/web'));

    foreach ($all_route_file as $val){
        if (strstr($val, '.php')){
            Route::middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web/'.$val));
        }
    }
}
// 添加自定义路由函数
public function map()
{
    $this->mapApiRoutes();

    $this->mapWebRoutes();

    // 调用路由方法
    $this->mapAllWebRoutes();

}

这样就可以在 routes/web/ 目录下创建自定义路由文件了

image.png

测试

亲测好用, 很简单!