2016-12-28 62 views
7

我想知道如何處理400多條路線。用PhpStorm自動完成管理400多條Laravel路線

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

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' => '[email protected]', 
     'as' => MarketingRoutes::INDEX 
    ]); 

    Route::get('marketing/disabled', [ 
     'uses' => '[email protected]', 
     'as' => MarketingRoutes::DISABLED 
    ]);``` 

這樣做是因爲它允許我們使用PhpStorm自動完成功能,還查看使用每條路線。

但是,這個問題是我們同時使用兩個系統。 Laravel的內部路由命名系統,同時我們使用自己的系統將名稱定義爲常量。

必須有一個更好的方法來管理這個數量的路線,並有一種方法來檢查項目文件中的用法。

目前,它也是我們的看法相當混亂:

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

我已經嘗試過了Laravel插件PhpStorm但與自動加載到RouteServiceProvider路線的文件夾時,這並不正常工作。

回答

1

注意到在更新日誌Laravel Plugin for PhpStorm(版本0.11),Laravel 5.3的路由結構中增加了支持。

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

當使用插件的版本0.11,你有5.3文件夾結構,我看到沒有理由自動建議路線名稱將無法正常工作。

希望這會有所幫助!

+0

測試它,它的工作原理。唯一的缺點是你無法看到你的路線在應用程序中的使用位置。我想我會在Laravel Phpstorm插件上打開一個問題,以便添加此功能。 –

+0

在Laravel Phpstorm插件上打開一個問題https://github.com/Haehnchen/idea-php-laravel-plugin/issues/85 –

1

我認爲如果你在控制器中儘量使用const,那麼文本將會變得更短以至於使用普通名稱。那麼你的看法會更好。

你可以在另一邊看在路由::資源的文檔在您的路由文件將得到小得多,因爲它的自動設置所有的CRUD路線,然後傳遞責任控制器

+0

Afaik並測試過,您仍然必須在控制器前面添加視圖中的完整名稱空間。所以我不明白這將如何解決這個問題。就「Route :: resource」而言,這將是首選。我並不那麼擔心我的路線文件在這個意義上變得很大。我寧願有一種定義路線的方法。我的主要問題是路由的自動完成和使用檢查。 –