Je nachdem, welchen Teil von Laravel Sie erweitern oder ersetzen möchten, gibt es unterschiedliche Ansätze.
Das Hinzufügen von Funktionen zu Str ist wirklich einfach, wegen "Makros":
Hier ist ein kurzes Beispiel für das Hinzufügen von Funktionen:
%Vor%Sie können diese Funktion dann wie erwartet aufrufen:
%Vor%Das Hinzufügen von Funktionen mit Makros wird von Str, Form, HTML und Response unterstützt.
Um die URL zu erweitern, muss man den IOC von Laravel verwenden. Dies wird in den Dokumenten erklärt (wie von BenjaminRH erwähnt). Ich stimme zu, es kann ein bisschen schwer zu verstehen sein. Hier ist eine Schritt-für-Schritt-Anleitung, um die URL zu erweitern:
Erstellen Sie den Ordner app / lib , um Ihre Erweiterungsklassen zu speichern.
Fügen Sie diesen Ordner zum automatischen Laden hinzu:
Fügen Sie in app / start / global.php den lib-Pfad zum Klassenlader hinzu:
%Vor%Fügen Sie dann den Pfad zu composer.json classmap hinzu:
%Vor%Erstellen Sie den benutzerdefinierten UrlGenerator app / lib / CustomUrlGenerator.php :
%Vor%Erstellen Sie einen Service Provider app / lib / CustomRoutingServiceProvider.php :
%Vor%Registrieren Sie den Dienstanbieter unter app / config / app.php :
Fügen Sie CustomRoutingServiceProvider
dem Array providers hinzu.
Zum Beispiel gleich nach dem Workbench-Provider:
Führen Sie composer dump-autoload
aus dem Projektstammordner aus.
Fertig. Verwenden Sie wie:
%Vor%HINWEIS Der Code wurde getestet, enthält jedoch möglicherweise Fehler.
Interessant, dass Sie das eigentlich erwähnen sollten. Ein vollständiger Dokumentationsabschnitt wurde erst vor kurzem hinzugefügt, was dies im Detail abdeckt. Es ist sehr klar und leicht zu verstehen. Wenn Sie Laravel überhaupt verwendet haben, überrascht es Sie vielleicht nicht einmal, dass Laravel tatsächlich eine extend
-Methode für viele Kernkomponenten bereitstellt.
Nach der Antwort von Fnatte machen die heutigen Versionen von Laravel eine zusätzliche Verarbeitung in der url
-Bindung. Die Neudefinition der gesamten Bindung ist keine praktische Option mehr.
Hier ist, wie ich die URL
Fassade erweitert habe.
Erstellen Sie zuerst Ihre Kindklasse mit diesem Muster:
%Vor%Fügen Sie dies dann in einem ServiceProvider hinzu:
%Vor% Der Punkt ist einfach, dass die ursprüngliche url
-Bindung mindestens einmal ausgeführt werden sollte, bevor wir sie mit unseren eigenen überschreiben.