簡體   English   中英

使用PhpStorm自動完成功能在Laravel中管理400多條路線

[英]Managing 400+ routes in Laravel with PhpStorm autocompletion

我想知道如何處理400多條路線。

我們目前根據它們所屬的控制器命名空間將所有路由分成多個文件。

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路徑,則無法正常工作。

我想如果你在控制器中走到const那么文本將更短,只需使用普通名稱。 然后你的觀點會更好。

您可以在另一側查看Route :: resource中的文檔,其中您的路徑文件將變得更小,因為它自動設置所有crud路由然后將責任傳遞給控制器

在Laravel Plugin for PhpStorm(版本0.11)的更改日志中注明,為Laravel 5.3的路由結構添加了支持。

我建議你將routes目錄移動到項目的根目錄。 就像Laravel 5.3一樣。 例如: app/Http/Routes/成為routes/

當使用插件的0.11版本並且你有5.3文件夾結構時,我認為沒有理由自動建議路由名稱不起作用。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM