Der hässliche, faule und schreckliche Weg: Fügen Sie am Ende bootstrap/start.php
eine hinzu include('tools.php')
und platzieren Sie Ihre Funktion in dieser neuen Datei.
Der saubere Weg: Erstellen Sie eine Bibliothek. Auf diese Weise wird es NUR dann automatisch geladen, wenn Sie es tatsächlich verwenden.
- Erstellen Sie einen
libraries
Ordner in Ihrem app
Ordner
- Erstellen Sie Ihre Bibliotheksdatei, erstellen Sie eine Klasse darin und fügen Sie statische Funktionen hinzu
- Option 1 : Bearbeiten
start/global.php
, um app_path().'/libraries'
es dem ClassLoader::addDirectories(
Array hinzuzufügen .
- Option 2 : Bearbeiten
composer.json
, um "app/libraries"
es dem autoload
Array hinzuzufügen . Laufcomposer dump-autoload
- Rufen Sie Ihre Klassen- und statischen Funktionen aus Ihren Ansichten auf.
Informationen zu Ihren Optionen, zitiert aus der global.php
Datei
Zusätzlich zur Verwendung von Composer können Sie den Laravel-Klassenlader zum Laden Ihrer Controller und Modelle verwenden. Dies ist nützlich, um alle Ihre Klassen im "globalen" Namespace zu belassen, ohne dass Composer aktualisiert wird.
Sie können beide Optionen kombinieren, wobei der Laravel-Klassenlader automatisch nach Klassen in den registrierten Verzeichnissen sucht ( Option 1 , einfacher) und Composer alle Klassen aufzeichnet, jedoch erst, nachdem Sie sie aktualisiert haben ( Option 2 kann die Leistung verbessern).
app_path().'/library'
in start / global.php platzieren.sitehelpers.php
Dazu erstelle ich einen neuen Ordner im
/app
Verzeichnis im Stammverzeichnis Ihres Laravel 4-Projekts. Fügen Sie dann diesen Ordner wie folgt zum ersten Array der/app/start/global.php
Datei hinzu:Solange die Ordnerstruktur innerhalb des neuen
/app/classes
Ordners Ihrer Namespace-Konvention entspricht. Laravel 4 lädt automatisch alle Klassen / Dateien in diesem Ordner. Auf diese Weise müssen Sie keine Composer-Dateien durchsuchen oder den Composer-Befehl ausführen.Ich bin mir nicht sicher, ob dies die beste Vorgehensweise ist, aber es funktioniert auf jeden Fall.
Wenn Sie eine einfache Datei mit dem folgenden Namen erstellt
/app/classes/Helpers/Helper.php
haben:Sie müssten nur anrufen
Helpers\Helper::helloWorld();
Sie können diese Hilfsklasse auch als Alias in Ihrer
/app/config/app.php
Datei verwenden. Fügen Sie einfach so etwas am Ende desaliases
Arrays hinzu:quelle
composer dump-autoload
- ich habe es getan und 20 Minuten damit verbracht, meinen Kopf zu kratzen.Die helpers.php-Methode von Laravel besteht darin, sie Ihren "Dateien" in composer.json ( https://github.com/laravel/framework/blob/master/composer.json ) hinzuzufügen :
Was ich mache, ist kleine Klassen zu erstellen (ein paar Methoden pro Klasse, eine Zeile pro Methode, alles erweitert von etwas und DRY, das ist mein Ziel),
Speichern Sie sie in App / Bibliotheken und fügen Sie sie zu composer.json hinzu:
Ausführen
Und dann verwenden Sie sie einfach, wo immer Sie brauchen
Sehen Sie sich dieses Video zum Refactoring an: http://www.youtube.com/watch?v=DC-pQPq0acs
Ich bin mir übrigens sicher, dass dies nur ein Beispiel war, aber Sie benötigen möglicherweise keinen Helfer zum Formatieren von Daten, da alle Daten in Laravel Instanzen von Carbon sind ( https://github.com/briannesbitt/Carbon ) und Es gibt viele Methoden zum Formatieren von Datum und Uhrzeit.
quelle
formatDDMMAAAA()
als haben würdenstatic
.Sie können dies auch
View::share()
zusammen mit Verschlüssen verwenden - ich habe gerade darüber geschrieben: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Zusätzlicher Vorteil: Sie müssen keine zusätzliche Klasse erstellen und den globalen Namespace sauber halten.
quelle