2016-12-28 1 views
7

Ich frage mich, wie man mit 400+ Routen zu tun.Verwalten von mehr als 400 Routen in Laravel mit PhpStorm Autovervollständigung

Wir trennen derzeit alle Routen in mehrere Dateien entsprechend dem Controller-Namespace, zu dem sie gehören.

Die Struktur App/Http/Routes sieht ungefähr so ​​aus:

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

Alle unsere Routen benannt sind. Aber hier kommt das eigentliche Problem, das wir haben.

Unsere Routen werden mit Klassen benannt, die mit Konstanten gefüllt sind und den Namen der Route definieren.

namespace App\Http\Controllers\Marketing; 

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

Diese Konstantenklassen befinden sich im Namespace Controller. Sie werden dann in den Marketing.php Routen verwendet Datei wie folgt:

/** 
* 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 
    ]);``` 

Dies geschieht, weil es uns die PhpStorm zur automatischen Vervollständigung Funktionen nutzen können und auch sehen, wo jede Route verwendet wird.

Aber das Problem dabei ist, dass wir zwei Systeme gleichzeitig verwenden. Laravels internes Routingbenennungssystem und gleichzeitig verwenden wir unser eigenes System, das die Namen als Konstanten definiert.

Es muss eine bessere Möglichkeit geben, diese Anzahl an Routen zu verwalten und die Verwendung in den Projektdateien überprüfen zu können.

Derzeit ist es auch ziemlich chaotisch in unseren Ansichten:

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

Ich habe bereits versucht, das Laravel Plugin für PhpStorm aber nicht richtig funktioniert, wenn Sie einen Ordner mit Routen, die das in die RouteServiceProvider automatisch geladen werden.

Antwort

1

Noted im Changelog zum Controller des Laravel-Plugins für PhpStorm (Version 0.11) wurde Unterstützung für die Routenstruktur von Laravel 5.3 hinzugefügt.

Ich schlage vor, Sie verschieben das Routenverzeichnis in das Stammverzeichnis Ihres Projekts. Genau wie Laravel 5.3 hat. Zum Beispiel: app/Http/Routes/ wird routes/.

Wenn Version 0.11 des Plugins verwendet wird und Sie die 5.3-Ordnerstruktur haben, sehe ich keinen Grund, den automatischen Vorschlag für die Routennamen nicht funktionieren würde.

Hoffe, das hilft!

+0

Getestet und es funktioniert. Der einzige Nachteil ist, dass Sie nicht sehen können, wo Ihre Routen in der Anwendung verwendet werden. Ich schätze, ich werde ein Problem auf dem Laravel Phpstorm Plugin öffnen, um diese Funktionalität hinzuzufügen. –

+0

Eröffnet ein Problem auf dem Laravel Phpstorm Plugin https://github.com/Haehnchen/idea-php-laravel-plugin/issues/85 –

1

Ich denke, wenn Sie bis const in der Steuerung gehen, wäre der Text kürzer, nur die normalen Namen zu verwenden. Dann wären deine Ansichten wieder schöner.

Sie könnten auf der anderen Seite Blick in die Dokumentation auf der Strecke :: Ressource, wo Sie Ihre Routen-Datei viel kleiner bekommen, da es automatisch alle crud Routen einrichtet und dann geht die Verantwortung

+0

Afaik und getestet müssen Sie dem Controller immer noch den vollständigen Namespace in der Ansicht voranstellen. Ich sehe also nicht, wie das das Problem lösen würde. Was "Route :: resource" betrifft, wäre das eine Präferenz. Ich bin nicht damit beschäftigt, dass meine Routen-Datei in diesem Sinne groß wird. Ich mag eher eine Möglichkeit, Routen zu definieren.Mein Hauptproblem ist die Autovervollständigung und die Verwendungsprüfung von Routen. –

Verwandte Themen