Best Practices für Laravel 4 Helfer und die Grundlegenden Funktionen?
Ich versuche zu verstehen, der beste Ort, um eine Globale Funktion in Laravel 4. Zum Beispiel, das Datum der Formatierung. Ich glaube nicht, dass die Herstellung einer Fassade ist es Wert, als Fassaden sind auch modular. Ich habe gelesen, Artikel über die Erstellung einer library-Ordner und die Speicherung von Klassen gibt, aber auch dass scheint wie eine Menge für eine einfache Funktion. Sollte nicht ein "tool" wie diese verfügbar sein Blade Vorlagen?
Was sind die besten Methoden für etwas wie dies, und wie kann ich es verfügbar machen, um die Klinge Vorlagen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hässlich, faul und schreckliche Art und Weise: Am Ende des
bootstrap/start.php
ist , fügen Sie eininclude('tools.php')
Ort und Ihre Funktion in die neue Datei.Die saubere Art und Weise: Erstellen Sie eine Bibliothek. So, es wird geladen, NUR, wenn Sie es tatsächlich benutzen.
libraries
- Ordner in Ihremapp
Ordnerstart/global.php
hinzufügenapp_path().'/libraries'
zu denClassLoader::addDirectories(
array.composer.json
hinzufügen"app/libraries"
zu denautoload
array. Führen Siecomposer dump-autoload
Über Ihre Möglichkeiten, zitiert aus der
global.php
DateiKönnen Sie beide Möglichkeiten kombinieren, wo die Laravel class-loader wird automatisch sucht nach Klassen in den eingetragenen Verzeichnissen (Option 1, leichter), Komponist und halten Aufzeichnung aller Klassen, aber nur, nachdem Sie es zu aktualisieren (Option 2, wird möglicherweise die Leistung verbessert).
app_path().'/library'
im start/global.php.sitehelpers.php
Mein Weg dies zu tun ist, erstellen Sie einen neuen Ordner in der
/app
Verzeichnis in der Wurzel Ihrer Laravel 4-Projekts. Dann fügen Sie diese Ordner in die erste Reihe der/app/start/global.php
Datei etwa so:Solange der Ordner-Struktur innerhalb des neuen
/app/classes
Ordner folgt die Verwendung von Namensräumen Konvention. Laravel 4 wird die autoload-alle Klassen/Dateien in diesem Ordner. Auf diese Weise gibt es keine Notwendigkeit zu Graben, in einem Komponisten-Dateien, oder führen Sie composer-Befehl.Nicht sicher, ob dies ist die beste übung, aber es funktioniert sicherlich.
Wenn Sie erstellt eine einfache Datei namens
/app/classes/Helpers/Helper.php
wie diese:Alles was Sie tun müssen, ist Anruf
Helpers\Helper::helloWorld();
Könnte man auch alias-diese helper-Klasse in Ihrem
/app/config/app.php
- Datei. Fügen Sie nur so etwas wie dies am Ende deraliases
array:composer dump-autoload
- ich hatte und habe 20 Minuten meinen Kopf kratzen.Laravel ist helpers.php Methode ist, fügen Sie es zu Ihrem "files" - Komponisten.json (https://github.com/laravel/framework/blob/master/composer.json):
Was ich Tue, ist für die Schaffung kleiner Klassen (ein paar Methoden pro Klasse, eine Zeile pro Methode, alles erstreckte sich von etwas und TROCKEN, das ist mein Ziel),
speichern Sie Sie in app/Bibliotheken, und fügen Sie zu Komponisten.json:
Ausführen
Und dann benutzen Sie einfach wo immer Sie brauchen
Schauen Sie dieses video über refactoring: http://www.youtube.com/watch?v=DC-pQPq0acs
Übrigens, ich bin irgendwie sicher, es war nur ein Beispiel, aber Sie vielleicht nicht brauchen einen Helfer, um das formatieren von Daten, da alle Daten in Laravel sind Instanzen von Kohlenstoff (https://github.com/briannesbitt/Carbon) und es hat viele Methoden, um Datum und Uhrzeit formatieren.
formatDDMMAAAA()
alsstatic
.Können Sie auch
View::share()
zusammen mit Schließungen zu erreichen - ich habe gerade gebucht über diese: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Zusätzlichen Vorteil: Sie müssen nicht erstellen Sie eine zusätzliche Klasse und halten auch den globalen Namensraum sauber.