Unterschied zwischen Middleware-Route-Gruppe und Namespaces-Route-Gruppe in Laravel 5.1?

9

Ich habe Laravel 5.1 Dokumentation gelesen. Ich habe nicht verstanden, wie die Laravel-Routegruppe funktioniert und was der Unterschied zwischen folgenden Routegruppen ist.

Routengruppen & amp; Benannte Routen

Wenn Sie Routengruppen verwenden, können Sie im Attributgruppenfeld "route group" ein Schlüsselwort as angeben, mit dem Sie für alle Routen innerhalb der Gruppe ein gemeinsames Präfix für den Routennamen festlegen können:

%Vor%

Middleware

Um Middleware allen Routen innerhalb einer Gruppe zuzuweisen, können Sie den Middleware-Schlüssel im Gruppenattribut-Array verwenden. Middleware wird in der Reihenfolge ausgeführt, in der Sie dieses Array definieren:

%Vor%

Namespaces

Ein weiterer häufiger Anwendungsfall für Routengruppen ist das Zuweisen des gleichen PHP-Namespace zu einer Gruppe von Controllern. Sie können den Namespace-Parameter in Ihrem Gruppenattribut-Array verwenden, um den Namespace für alle Controller innerhalb der Gruppe anzugeben:

%Vor%

Unterbereichsrouting

Routengruppen können auch zum Weiterleiten von Wildcard-Subdomains verwendet werden. Unterdomänen können wie Routen-URIs Routenparameter zugewiesen werden, sodass Sie einen Teil der Subdomäne für die Verwendung in Ihrer Route oder Ihrem Controller erfassen können. Die Unterdomäne kann mit dem Domänenschlüssel im Gruppenattribut-Array angegeben werden:

%Vor%

Routenpräfixe

Das Präfixgruppenarray-Attribut kann verwendet werden, um jeder Route in der Gruppe einen bestimmten URI voran zu stellen. Beispielsweise möchten Sie möglicherweise alle Routen-URIs innerhalb der Gruppe mit admin voranstellen:

%Vor%

Sie können den Präfixparameter auch verwenden, um allgemeine Parameter für Ihre gruppierten Routen anzugeben:

%Vor%

Hinweis: Ссылка

    
vision 04.08.2015, 04:36
quelle

1 Antwort

10

Mit den Routengruppen können Sie Routen mit gemeinsamen Attributen gruppieren, ohne diese Attribute für jede Route neu definieren zu müssen.

Beispiel

Als Beispiel verwenden wir das Array-Attribut Namespace .

Nehmen wir an, wir haben einen Controller namens NewsController , der die gesamte Admin-Logik für den Nachrichtenbereich Ihrer Apps enthält. Sie können diese Datei im Verzeichnis 'App / Http / Controllers / Admin' ablegen.

Laravel 5 folgt PSR-4-Autoloading-Konventionen , sodass die Anwendung den Namensraum als identisch ausgibt zu dem Pfad der Datei, so könnte unsere Klasse in etwa so aussehen:

%Vor%

Wir könnten eine Route zu dieser Klasse wie folgt schreiben:

%Vor%

Hinweis : Laravel geht automatisch davon aus, dass sich alle Ihre Controller im Verzeichnis App/Http/Controllers befinden, sodass wir keine Controller-Deklarationen in der routes-Datei verwenden können.

Das oben genannte sollte gut funktionieren, aber vielleicht haben Sie auch ein Dutzend anderer Klassendateien, die sich mit der Admin-Logik alle im selben Namespace befassen. Wir können die Namespace-Option verwenden, um diese zusammen zu gruppieren.

%Vor%

Beachten Sie, dass ich den Namensraum Admin für den Controller für jede Route nicht mehr definiere.

Derselbe Prozess kann auf Middleware, Subdomains und URL-Präfixe angewendet werden.

Weiteres Beispiel

Nehmen wir das erste Beispiel und bauen Sie darauf auf. Wie Sie aus den obigen Routenerklärungen sehen können, teilen sich alle unsere Admin-Routen ein gemeinsames URL-Präfix.

Ссылка Administrator / Neuigkeiten
Ссылка admin / Benutzer

Wir können das Array-Attribut prefix verwenden, um die gemeinsame URL für unsere Routen zu definieren. In unserem Fall ist dies admin .

Unsere aktualisierten Routendeklarationen würden so aussehen.

%Vor%

Sie fragen sich wahrscheinlich, warum das nützlich wäre? Stellen Sie sich vor, Sie haben eine große Anwendung mit Dutzenden, wenn nicht Hunderte von Routen entwickelt. Dann kommt eines Tages dein Chef zu dir und sagt "Hey Herr Tester, wir müssen die Admin-URL von /admin auf /cms ändern, wie lange wird das dauern?".

Wenn Sie alle Ihre Routen mit Gruppen mit dem Präfix Array-Attribut wie oben beschrieben deklariert haben, wird dies für Sie ein einfacher und müheloser Prozess.

    
Jeemusu 04.08.2015, 04:53
quelle

Tags und Links