Suche…


Einführung

Das Hinzufügen von benutzerdefinierten Helfern kann Sie bei Ihrer Entwicklungsgeschwindigkeit unterstützen. Es gibt jedoch ein paar Dinge, die beim Schreiben solcher Hilfsfunktionen zu berücksichtigen sind, daher dieses Tutorial.

Bemerkungen

Nur ein paar Hinweise:

  • Wir haben die Funktionsdefinitionen in eine Prüfung ( function_exists ) gestellt, um Ausnahmen zu verhindern, wenn der Dienstanbieter zweimal aufgerufen wird.
  • Alternativ können Sie die Hilfedatei aus der Datei composer.json registrieren. Sie können die Logik aus dem Laravel-Framework selbst kopieren .

document.php

<?php

if (!function_exists('document')) {
    function document($text = '') {
        return $text;
    }
}

Erstellen Sie eine helpers.php-Datei. Nehmen wir an, sie lebt in app/Helpers/document.php . Sie können viele Helfer in einer Datei ablegen (so macht Laravel dies) oder Sie können sie nach Namen aufteilen.

HelpersServiceProvider.php

Jetzt erstellen wir einen Dienstanbieter. Lassen Sie uns es unter app/Providers :

<?php

namespace App\Providers;

class HelpersServiceProvider extends ServiceProvider
{
    public function register()
    {
        require_once __DIR__ . '/../Helpers/document.php';
    }
}

Der obige Dienstanbieter lädt die Hilfedatei und registriert Ihre benutzerdefinierte Funktion automatisch. Bitte stellen Sie sicher, dass Sie diesen HelpersServiceProvider in Ihrer config/app.php unter providers registrieren:

'providers' => [
     // [..] other providers
     App\Providers\HelpersServiceProvider::class,
]

Benutzen

Jetzt können Sie die Funktion document() überall in Ihrem Code verwenden, beispielsweise in Blade-Vorlagen. Dieses Beispiel gibt nur die gleiche Zeichenfolge zurück, die es als Argument erhält

<?php
Route::get('document/{text}', function($text) { 
    return document($text);
});

Gehen Sie jetzt zu /document/foo in Ihrem Browser (Verwendung php artisan serve oder valet ), die zurückkehren wird foo .



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow