Les meilleures Pratiques pour Laravel 4 des Aides et des Fonctions de Base?
J'essaie de comprendre le meilleur endroit pour mettre une fonction globale dans Laravel 4. Par exemple, le formatage de la date. Je ne pense pas que faire une façade en vaut la peine, car les façades sont trop modulaire. J'ai lu des articles sur la création d'un dossier de bibliothèque et de stocker des classes, mais qui semble aussi que beaucoup d'une fonction simple. Ne faut-il pas "outil" comme cela sera disponible dans la Lame modèles?
Quelles sont les meilleures pratiques pour quelque chose comme cela et comment puis-je faire à la disposition de la Lame modèles?
Vous devez vous connecter pour publier un commentaire.
Le laid, paresseux et terrible façon: À la fin de
bootstrap/start.php
, ajouter uninclude('tools.php')
et le lieu de votre fonction, dans ce nouveau fichier.La méthode propre: Créer une bibliothèque. De cette façon, il va être chargé UNIQUEMENT lorsque vous l'utiliser effectivement.
libraries
dossier à l'intérieur de votreapp
dossierstart/global.php
pour ajouterapp_path().'/libraries'
à laClassLoader::addDirectories(
tableau.composer.json
pour ajouter"app/libraries"
à laautoload
tableau. Exécutercomposer dump-autoload
Au sujet de vos options, cité de la
global.php
fichierVous pouvez combiner les deux options, où l'Laravel chargeur de classe va rechercher automatiquement les classes dans le régime enregistré d'annuaires (Option 1, plus facile) et Compositeur permettra de garder une trace de toutes les classes, mais seulement après la mise à jour il (Option 2, peut améliorer les performances).
app_path().'/library'
, dans start/global.php.sitehelpers.php
Ma façon de faire cela est de créer un nouveau dossier dans le
/app
répertoire à la racine de votre Laravel 4 du projet. Puis ajouter ce dossier à la première matrice de la/app/start/global.php
fichier comme ceci:Aussi longtemps que la structure des dossiers dans le nouveau
/app/classes
dossier suit votre namespacing convention. Laravel 4 automatiquement toutes les classes/fichiers dans ce dossier. De cette façon, il n'y a pas besoin de creuser dans n'importe quel compositeur des fichiers ou exécuter compositeur de commande.Ne sais pas si c'est la meilleure pratique, mais il a certainement des œuvres.
Si vous avez créé un simple fichier appelé
/app/classes/Helpers/Helper.php
comme ceci:Tout ce que vous devez faire est d'appeler
Helpers\Helper::helloWorld();
Vous pouvez également alias de cette classe d'assistance dans votre
/app/config/app.php
fichier. Juste ajouter quelque chose comme ceci à la fin de laaliases
tableau:composer dump-autoload
- je l'ai fait et passé 20 minutes à me gratter la tête.Laravel est helpers.php la méthode consiste à l'ajouter à vos "fichiers" dans le compositeur.json (https://github.com/laravel/framework/blob/master/composer.json):
Ce que j'ai à faire est de créer des classes de petite taille (quelques méthodes par classe, une ligne par méthode, tout étendu de quelque chose et SEC, c'est mon objectif),
les enregistrer dans app/les bibliothèques et les ajouter à composer.json:
Exécuter
Et puis il suffit de les utiliser quand vous en avez besoin
Regardez cette vidéo sur refactoring: http://www.youtube.com/watch?v=DC-pQPq0acs
Par la manière, je suis sûr que c'était juste un exemple, mais vous ne pourriez pas besoin d'un assistant pour formater les dates, puisque toutes les dates dans Laravel sont des instances de Carbone (https://github.com/briannesbitt/Carbon) et il a des charges de méthodes de format de date et d'heure.
formatDDMMAAAA()
commestatic
.Vous pouvez également utiliser
View::share()
avec fermetures à atteindre ce - que je viens de poster à ce sujet: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Avantage: Vous n'avez pas besoin de créer une classe supplémentaire et aussi garder l'espace de noms global propre.