使用PhpStorm自动完成功能在Laravel中管理400多条路线

Koe*_*vel 7 php routes code-design phpstorm laravel

我想知道如何处理400多条路线.

我们目前根据它们所属的控制器命名空间将所有路由分成多个文件.

App/Http/Routes看起来像这样的结构:

- Auth.php
- Marketing.php
- Orders.php
Run Code Online (Sandbox Code Playgroud)

我们所有的路线都被命名.但是这里出现了我们遇到的实际问题.

我们的路由使用填充了定义路径名称的常量的类来命名.

namespace App\Http\Controllers\Marketing;

class RouteConstants
{
    /**
     * MarketingController
     */
    const INDEX = 'marketing.index';
    const DISABLED = 'marketing.disabled';
Run Code Online (Sandbox Code Playgroud)

这些常量类位于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
    ]);```
Run Code Online (Sandbox Code Playgroud)

这样做是因为它允许我们使用PhpStorm自动完成功能,并查看每个路由的使用位置.

但问题是我们同时使用两个系统.Laravel的内部路由命名系统,同时我们使用自己的系统将名称定义为常量.

必须有一种更好的方法来管理这些路径,并有办法检查项目文件中的用法.

目前我们的观点也非常混乱:

<a href="{{ route(App\Http\Controllers\Marketing\RouteConstants::INDEX) }}">Marketing</a>
Run Code Online (Sandbox Code Playgroud)

我已经为PhpStorm尝试了Laravel插件,但是当有一个包含自动加载到路径中的路径的文件夹时,这不能正常工作RouteServiceProvider.

Rob*_*alk 1

PhpStorm 的 Laravel 插件(版本 0.11)的变更日志中指出,添加了对 Laravel 5.3 的路由结构的支持。

我建议你将routes目录移动到项目的根目录下。就像 Laravel 5.3 一样。例如:app/Http/Routes/变为routes/

当使用 0.11 版本的插件并且您具有 5.3 文件夹结构时,我认为自动建议路径名称没有理由不起作用。

希望这可以帮助!