在多个文件中拆分 Lumen 6.X 路由

Posted

技术标签:

【中文标题】在多个文件中拆分 Lumen 6.X 路由【英文标题】:Splitting Lumen 6.X routes in multiple files 【发布时间】:2020-11-09 22:17:16 【问题描述】:

Lumen 框架带有 routes/web.php 文件。阅读有关如何在多个文件中拆分路由的信息时,我遇到了 Laravel 文档(不是 Lumen),看起来很清楚。

@see https://laravel.com/docs/6.x/routing#basic-routing >>> 默认路由文件

说明

所有 Laravel 路由都在您的路由文件中定义,这些文件位于 routes 目录中。这些文件由框架自动加载。 routes/web.php 文件定义了用于您的 Web 界面的路由。 ...

在 routes/api.php 文件中定义的路由被 RouteServiceProvider 嵌套在一个路由组中。在该组中,会自动应用 /api URI 前缀,因此您无需手动将其应用到文件中的每个路由。您可以通过修改 RouteServiceProvider 类

来修改前缀和其他路由组选项

所以您可以添加其他路由文件并编辑 app/Providers/RouteServiceProvider.php 类,这看起来非常直接明了。

只是 Lumen 没有任何 app/Providers/RouteServiceProvider.php

那么在不破坏框架的情况下定义自己的路由文件的最佳方法是什么?

谢谢!

【问题讨论】:

只是在 web.php 中包含文件?还是那太简单了;)我没有 Lumen 经验,只有很多 Laravel 经验。 【参考方案1】:

我们可以像 Laravel 一样做到这一点。

在根文件夹中创建routes 目录。

在 routes 目录中创建文件,例如, 比如routes/users.phproutes/posts.php

bootstrap/app.php文件中添加上述路由文件

// Load The Application Routes
$app->router->group([
    'namespace' => 'App\Http\Controllers',
], function ($router) 
    require __DIR__.'/../routes/web.php';
    require __DIR__.'/../routes/users.php'; // mention file names 
    require __DIR__.'/../routes/posts.php';
);

【讨论】:

【参考方案2】:

流明中的等价物是located in /bootstrap/app.php

您可以在那里适当地添加路由文件条目。如您所见,实际上并没有用于添加文件或任何东西的特定 API。所以只要写出你认为合适的逻辑。

【讨论】:

以上是关于在多个文件中拆分 Lumen 6.X 路由的主要内容,如果未能解决你的问题,请参考以下文章

vue如何把路由拆分多个文件

一个Lumen多层拆分手记

Vue 项目中对路由文件进行拆分(解构的方法)

Nestjs路由器中控制器如何拆分路由

数据库优化-水平拆分 垂直拆分

数据库表的拆分