Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Laravel 5
Code

Wie man einen Laravel-Helfer erstellt

by
Difficulty:BeginnerLength:LongLanguages:

German (Deutsch) translation by Wei Zhang (you can also view the original English article)

Zunächst möchte ich die offizielle Website von Laravel über Helfer sprechen lassen.

Laravel enthält eine Vielzahl von globalen "Helfer" PHP-Funktionen. Viele dieser Funktionen werden vom Framework selbst verwendet. Sie können diese jedoch in Ihren eigenen Anwendungen verwenden, wenn Sie sie für praktisch halten.

Im Grunde sind Helfer in Laravel eingebaute Dienstprogrammfunktionen, die Sie von überall in Ihrer Anwendung aufrufen können. Wenn sie nicht vom Kernframework bereitgestellt worden wären, hätten Sie möglicherweise eigene Hilfsklassen entwickelt.

Obwohl der Kern bereits eine Vielzahl von Helfern zur Verfügung stellt, gibt es immer die Möglichkeit, dass Sie Ihre eigenen benötigen und eine entwickeln möchten, so dass Sie nicht den gleichen Code hier und da wiederholen müssen, um eine bessere Wartbarkeit zu erreichen. In diesem Tutorial erfahren Sie, wie Sie einen benutzerdefinierten Laravel-Helfer erstellen.

Helfer in Laravel

Wie bereits erwähnt, gibt es im Kern des Laravel-Frameworks viele Helfer. Sie werden basierend auf der Funktionalität gruppiert, die sie bereitstellen. Hier ist eine Liste von Hilfsgruppen.

Arrays

Helfer in dieser Gruppe bieten Funktionen zum Bearbeiten von Array-Elementen. In den meisten Fällen möchten Sie verschiedene Operationen für Array-Elemente ausführen. Dies ist der Ort, an dem Sie zuerst nachsehen sollten, ob das, wonach Sie suchen, bereits existiert.

Pfade

Ich finde Helfer in dieser Kategorie am nützlichsten. Sie geben den vollständig qualifizierten Pfad verschiedener Verzeichnisse wie App, Storage, Config und dergleichen zurück. Ich wette, Sie verwenden die meisten dieser Helfer bereits in Ihrer Laravel-Anwendung.

Saiten

String-Manipulation ist in Ihrer täglichen Anwendungsentwicklung unvermeidlich. Obwohl es viele String-Manipulationsfunktionen gibt, die von PHP selbst bereitgestellt werden, finden Sie in diesem Abschnitt einige nützliche Funktionen.

URLs

Sie finden nur sehr wenige in dieser Kategorie, aber sie werden in der gesamten Anwendung verwendet. Sie werden zum Generieren von URLs für Route, Asset und Formular verwendet.

Sonstiges

Diese Kategorie enthält Helfer, die eine Vielzahl von Funktionalitäten bieten, von der Protokollierung bis zur Fehlersuche und vielem mehr.

Für eine vollständige Referenz von Laravel-Helfern gibt es keinen besseren Ort als die offizielle Dokumentation.

Erstellen Sie Ihren ersten benutzerdefinierten Helper

Jetzt haben Sie ein grundlegendes Verständnis von Laravel Helfern und wofür sie verwendet werden. In diesem Abschnitt zeige ich Ihnen, wie Sie Ihren eigenen benutzerdefinierten Helper erstellen können, der global in Ihrer Laravel-Anwendung verwendet werden kann.

Um die Dinge einfach und leicht verständlich zu halten, ist es ein ziemlich einfacher Helfer, der eine Benutzer-ID akzeptiert und einen Benutzernamen als Antwort zurückgibt. Das hört sich natürlich nicht schick an, aber ich glaube, es genügt, das Konzept zu demonstrieren, und Sie können es immer erweitern, um Ihre komplexen Anforderungen zu erfüllen.

Ich nehme an, dass Sie eine Benutzertabelle in Ihrer Datenbank haben und es mindestens zwei Felder-userid und username hat.

Das Skelett eines Laravel Helfers

Bevor wir fortfahren und die Dateien tatsächlich erstellen, werfen wir einen kurzen Blick auf die Dateien, die wir im Rest des Artikels erstellen werden.

  • app/Helpers/Envato/User.php: Es ist unsere Hilfsdatei, die die Logik unseres Helfers enthält.
  • app/Providers/EnvatoServiceProvider.php: Es ist eine benutzerdefinierte Service-Provider-Datei, die unsere benutzerdefinierte Hilfsdatei lädt.
  • config / app.php: In dieser Datei deklarieren wir unseren benutzerdefinierten Service-Provider und helfen uns auch, einen Alias für unseren Helfer zu definieren, so dass wir nicht den vollständig qualifizierten Klassennamen unseres Helfers verwenden müssen.
  • routes / web.php: Eine hübsche Standard-Laravel-Routendatei, in der wir unseren Helfer testen werden.

Erstellen Sie Hilfsdateien

Obwohl Sie Ihre Hilfsdateien überall in Ihrer Anwendung platzieren können, schlägt die intuitivere und standardmäßige Methode vor, dass sie in Ihrem app-Verzeichnis angezeigt wird.

Also mach weiter und erstelle ein Helpers/Envato-Verzeichnis unter app und erstelle eine User.php-Datei mit folgendem Inhalt. Natürlich könntest du es direkt unter dem app oder app/Helper-Verzeichnis platzieren, aber wenn du dieses zusätzliche Level zur Verfügung stellst, können wir unsere Helfer in guter Form organisieren, speziell wenn du viele davon haben willst.

Die Datei beginnt mit einer hübschen Standard-Namespace-Deklaration:

Der Zweck unseres benutzerdefinierten Helpers ist es, einen Benutzernamen basierend auf einer Benutzer-ID abzurufen. Daher müssen wir mit der Datenbank interagieren, und das zwingt uns, DB Facade einzubeziehen.

Für diejenigen, die mit Laravel Facades nicht vertraut sind, ist es nur eine weitere bequeme Möglichkeit, auf die Objekte in Service-Containern zuzugreifen. Alternativ hätten Sie die Abhängigkeitsinjektion verwenden können.

Weiter geht es mit der konkreten Umsetzung unseres Helfers. Wie Sie sehen können, gibt es eine statische Methode, die die Logik zum Abrufen eines Benutzernamens basierend auf einer Benutzer-ID definiert.

Das $user-Objekt enthält den Datenbankdatensatz mit der übereinstimmenden Benutzer-ID. Abschließend gibt die Methode den Benutzernamen als Antwort in der folgenden Anweisung zurück.

Soweit unsere Hilfsdatei betroffen ist.

Jetzt haben wir unsere Hilfsdatei erstellt, aber die Frage ist, wie willst du sie benutzen? Zwei schnelle Lösungen kommen mir in den Sinn:

  • Sie können unseren Helper-Dateinamen in die Datei composer.json aufnehmen, damit er automatisch geladen wird. Dann könnten Sie sofort die statische Methode unserer Helferklasse aufrufen.
  • Sie können einen Laravel-Dienstanbieter erstellen, mit dem Sie Ihre benutzerdefinierte Hilfsdatei so registrieren können, dass das Laravel-Framework sie zusammen mit anderen Abhängigkeiten lädt. Registrieren Sie diesen Dienstanbieter in der Laravel-Konfiguration und erstellen Sie einen Alias, um Ihren Helper zu verwenden.

Natürlich ist die erste ziemlich schnell und einfach zu implementieren, und Sie könnten versucht sein, dies zu tun, aber ich würde eher die letztere empfehlen, da sie eher handwerklich und wartungsfreundlicher ist.

Wechseln Sie zur Befehlszeile und führen Sie den folgenden Befehl in Ihrem Anwendungsstamm aus, um einen neuen Dienstanbieter zu erstellen.

Sie sollten die Nachricht sehen, die bestätigt, dass sie erfolgreich im Verzeichnis app/Providers erstellt wurde.

Öffnen Sie diese Datei und Sie sollten bereits zwei Methoden sehen. Der wichtigste im Zusammenhang mit diesem Artikel ist die Methode register. Ja, es ist im Moment leer, also lasst uns ein paar Dinge einspeisen, um es nützlicher zu machen.

Die register-Methode wird verwendet, um Ihre Abhängigkeiten zu registrieren, und genau das haben wir getan. Wir haben unsere benutzerdefinierte Hilfsdatei hinzugefügt.

So sollte die Datei app/Providers/EnvatoServiceProvider.php nach Änderungen aussehen.

Bis jetzt ist alles ziemlich gut. Wir haben unseren kundenspezifischen Helfer und Dienstleister auf dem Tisch.

Als nächstes müssen wir Laravel über unseren Service Provider informieren, damit dieser beim Bootstrapping geladen werden kann. Öffnen wir die Datei config / app.php und fügen Sie am Ende den folgenden Eintrag in das provider-Array ein.

Um unseren Helfer auf bequeme Weise zu verwenden, könnten wir auch einen Alias erstellen. Lassen Sie uns das tun, indem Sie den folgenden Eintrag im Array aliases am Ende in derselben Datei hinzufügen.

Wenn Sie diesen Eintrag definieren, können Sie unseren Helfer mit dem Schlüsselwort EnvatoUser aufrufen. Ziemlich praktisch, nicht wahr? Zu Ihrer Information, hier ist die komplette Datei config / app.php.

Wir sind fast da! Wir haben die ganze harte Arbeit geleistet, um hierher zu kommen, und jetzt können wir die Vorteile unseres benutzerdefinierten Helfers nutzen.

Ihre erste benutzerdefinierte Helfer in Aktion

Um die Dinge einfach und unkompliziert zu halten, definieren wir eine einfache Laravel-Route und rufen von dort aus unseren Helfer an!

Gehen Sie voran und erstellen Sie eine routes/web.php Datei mit folgendem Inhalt.

Braucht das überhaupt eine Erklärung? Wir haben gerade den benutzerdefinierten Helfer mit der Kurzschrift EnvatoUser::get_username aufgerufen, und er sollte den Benutzernamen zurückgeben.

Natürlich können Sie unseren Helfer von überall in der Anwendung anrufen, sei es ein Controller oder eine Ansicht.

Damit endet unsere Geschichte für heute.

Fazit

Helfer in Laravel sind wirklich ein mächtiges Feature, und ich bin mir sicher, dass Sie als Entwickler das gerne erweitern würden. Und das war das Thema von heute - wir gingen durch die Grundlagen der Laravel-Hilfsdatei-Struktur und erstellten einen nützlichen benutzerdefinierten Helfer.

Ich hoffe, Ihnen hat der Artikel gefallen und er hilft Ihnen bei der Erstellung Ihrer eigenen maßgeschneiderten Helfer in der täglichen Laravel-Anwendungsentwicklung.

Zögern Sie nicht, Ihre Kommentare und Fragen im Feed unten zu hinterlassen. Ich fange auch Kommentare auf meinem Twitter und reagiere auf sie, sobald ich kann!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.