2016-12-28 11 views
7

400+ルートをどのように処理するのかと思います。Laravelで400以上のルートをPhpStormオートコンプリートで管理する

現在、ルートが属するコントローラの名前空間に従って、すべてのルートを複数のファイルに分割しています。

- Auth.php 
- Marketing.php 
- Orders.php 

すべて私たちのルートは名前が付けられます。

App/Http/Routesの構造は次のようになります。しかし、実際の問題はここにあります。

ルートの名前は、ルート名を定義する定数で埋められたクラスを使用して指定します。

namespace App\Http\Controllers\Marketing; 

class RouteConstants 
{ 
    /** 
    * MarketingController 
    */ 
    const INDEX = 'marketing.index'; 
    const DISABLED = 'marketing.disabled'; 

これらの定数クラスは、コントローラの名前空間にあります。

/** 
* 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のオートコンプリート機能を使用しても、各ルートが使用されている場所を確認することができますので、これが行われている:彼らはそのようにのようなファイルMarketing.php路線で使用されています。

しかし、この問題は、2つのシステムを同時に使用していることです。 Laravelの内部ルーティング命名システムと同時に、名前を定数として定義する独自のシステムを使用しています。

この量のルートを管理し、プロジェクトファイルの使用状況を確認する方法が必要です。

現在、それは私たちの見解でもかなり厄介です:

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

私はすでにPhpStormためLaravelのプラグインを試してみましたが、自動的にRouteServiceProviderにロードされたルートのフォルダを持ったときに、これは正しく動作しません。

答えて

1

をコントローラに責任を通過するときに、あなたのルートファイルがはるかに小さくなりますリソースPhpStorm用のLaravel Plugin(バージョン0.11)では、Laravel 5.3のルート構造のサポートが追加されました。

ルートディレクトリをプロジェクトのルートディレクトリに移動することをお勧めします。ちょうど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ルートを設定し、その後のchangelogに記載

+0

Afaikを試しても、コントローラのプレフィックスにビューの完全な名前空間を付ける必要があります。だから私はそれがその問題を解決する方法を見ていない。 'Route :: resource'が優先されることには関係があります。そういう意味で私のルートファイルが大きくなってしまうのではないでしょうか。私は、ルートを定義する1つの方法を持つのが好きです。私の主な問題は、ルートのオートコンプリートと使用状況のチェックです。 –