Hilfsfunktionen erfreuen sich bei Laravel-Entwicklern großer Beliebtheit. Sie bieten Zugriff auf einige clevere Algorithmen, die Sie mit einer einzigen Anweisung in Ihrem Code verwenden können.
Die wohl bekannteste Hilfsfunktion ist url(), mit der Sie interne Anwendungs-URLs generieren können.
Ein weiterer toller Helfer ist die Funktion retry(), zum Beispiel: https://laravel.com/docs/11.x/helpers#method-retry
Einfache Möglichkeit, eine Anweisung eine bestimmte Anzahl von Malen zu wiederholen, wenn sie eine Ausnahme auslöst. Es wird normalerweise bei externen API-Aufrufen verwendet und wurde kürzlich als Methode in den Laravel-HTTP-Client integriert.
$response = Http::retry(3, 100)->post(/* ... */);
Mehr zum HTTP-Client im entsprechenden Artikel: https://inspector.dev/laravel-http-client-overview-and-monitoring/
Manchmal möchten wir Aufgaben im Zusammenhang mit unserer Geschäftslogik automatisieren, und es könnte sehr praktisch sein, sie in eine Hilfsfunktion zu kapseln. Ich habe über die Implementierung von array_map für assoziative Arrays geschrieben, die perfekt für diesen Anwendungsfall geeignet ist.
Sie können den Artikel lesen, um den Zweck dieser Funktion zu erfahren. In diesem Zusammenhang möchte ich sie zu einer benutzerdefinierten Hilfsfunktion machen, die in Ihrer Laravel-Anwendung verwendet werden kann.
Erstellen Sie zunächst eine neue Datei helper.php im app/-Verzeichnis Ihres Laravel-Projekts.
Fügen Sie den folgenden Code ein, um die Funktion array_map_assoc in die Datei zu deklarieren:
if (!function_exists('array_map_assoc')) { /** * Apply a mapping callback receiving key and value as arguments. * The standard array_map doesn't pass the key to the callback. But in the case of associative arrays, * it could be really helpful. * * array_map_assoc(function ($key, $value) { * ... * }, $items) * * @param callable $callback * @param array $array * @return array */ function array_map_assoc(callable $callback, array $array): array { // map original array keys, and call $callable with $key and $value. return array_map(function($key) use ($callback, $array){ return $callback($key, $array[$key]); }, array_keys($array)); } }
Wie Sie sehen können, wird die Funktionsdeklaration durch das if umschlossen, um die Registrierung von Funktionen mit demselben Namen zu vermeiden.
Laravel lädt benutzerdefinierte Hilfsdateien nicht automatisch, daher müssen Sie Composer manuell anweisen, die Datei während der automatischen Ladegenerierung einzuschließen.
Suchen Sie in der Datei „composer.json“ Ihres Laravel-Projekts den Abschnitt „autoload“ und fügen Sie das Schlüsselwort „files“ hinzu:
"autoload": { "psr-4": { "App\": "app/", "Database\Factories\": "database/factories/", "Database\Seeders\": "database/seeders/" }, "files": [ "app/helpers.php" ] },
Führen Sie nach dem Hinzufügen der Datei „composer dump-autoload“ in Ihrem Terminal aus, um die Autoload-Dateien von Composer zu aktualisieren.
Sobald die Hilfsdatei geladen ist, können Sie Ihre benutzerdefinierten Funktionen überall in Ihrer Laravel-Anwendung verwenden, genau wie jede andere PHP-Funktion.
$histogram = array_map_assoc(function ($key, $value) { return [ 'label' => $key, 'value' => $value['doc_count'] ]; }, $data);
Ich hoffe, es ist hilfreich, den Überblick über Ihre Codebasis zu behalten.
Für weitere technische Artikel können Sie mir auf Linkedin oder X folgen.
Inspector ist ein Tool zur Codeausführungsüberwachung, das speziell für Softwareentwickler entwickelt wurde. Sie müssen nichts auf Serverebene installieren. Installieren Sie einfach das Paket Laravel oder Symfony und schon kann es losgehen.
Wenn Sie nach HTTP-Überwachung, Einblicken in Datenbankabfragen und der Möglichkeit suchen, Warnungen und Benachrichtigungen an Ihre bevorzugte Messaging-Umgebung weiterzuleiten, testen Sie Inspector kostenlos. Registrieren Sie Ihr Konto.
Oder erfahren Sie mehr auf der Website: https://inspector.dev
Das obige ist der detaillierte Inhalt vonBenutzerdefinierte Laravel-Hilfsfunktionen – Schnelle Tipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!