<分区>
我想知道如何处理 400 多条路线。
我们目前根据它们所属的 Controller 命名空间将所有路由分成多个文件。
App/Http/Routes
的结构如下所示:
- Auth.php
- Marketing.php
- Orders.php
我们所有的路线都有名字。但是,我们遇到的实际问题来了。
我们的路由是通过使用填充了定义路由名称的常量的类来命名的。
namespace App\Http\Controllers\Marketing;
class RouteConstants
{
/**
* MarketingController
*/
const INDEX = 'marketing.index';
const DISABLED = 'marketing.disabled';
这些常量类位于 Controller 命名空间中。然后在 Marketing.php
路由文件中使用它们,如下所示:
/**
* Marketing Routes
*/
Route::group(['namespace' => 'App\Http\Controllers\Marketing'], function() {
/**
* MarketingController Routes
*/
Route::get('marketing/overview', [
'uses' => 'MarketingController@index',
'as' => MarketingRoutes::INDEX
]);
Route::get('marketing/disabled', [
'uses' => 'MarketingController@showDisabled',
'as' => MarketingRoutes::DISABLED
]);```
这样做是因为它允许我们使用 PhpStorm 自动完成功能,还可以查看每个路由的使用位置。
但这样做的问题是我们同时使用两个系统。 Laravel 的内部路由命名系统,同时我们使用我们自己的系统将名称定义为常量。
必须有更好的方法来管理如此多的路由,并有办法检查项目文件中的使用情况。
目前我们的观点也很困惑:
<a href="{{ route(App\Http\Controllers\Marketing\RouteConstants::INDEX) }}">Marketing</a>
我已经尝试过 PhpStorm 的 Laravel 插件,但是当有一个包含自动加载到 RouteServiceProvider
中的路由的文件夹时,这不能正常工作。