La manière laide, paresseuse et horrible: à la fin de bootstrap/start.php
, ajoutez un include('tools.php')
et placez votre fonction dans ce nouveau fichier.
La manière propre: créez une bibliothèque. De cette façon, il sera chargé automatiquement UNIQUEMENT lorsque vous l'utiliserez réellement.
- Créez un
libraries
dossier dans votre app
dossier
- Créez votre fichier de bibliothèque, créez une classe dedans et ajoutez-y des fonctions statiques
- Option 1 : Modifier
start/global.php
pour ajouter app_path().'/libraries'
auClassLoader::addDirectories(
tableau.
- Option 2 : Modifier
composer.json
pour ajouter "app/libraries"
auautoload
tableau. Courircomposer dump-autoload
- Appelez votre classe et vos fonctions statiques à partir de vos vues.
À propos de vos options, cité dans le global.php
fichier
En plus d'utiliser Composer, vous pouvez utiliser le chargeur de classe Laravel pour charger vos contrôleurs et modèles. Ceci est utile pour conserver toutes vos classes dans l'espace de noms "global" sans mise à jour de Composer.
Vous pouvez combiner les deux options, où le chargeur de classe Laravel recherchera automatiquement les classes dans les répertoires enregistrés ( option 1 , plus simple) et Composer gardera une trace de toutes les classes, mais seulement après la mise à jour ( option 2 , pourrait améliorer les performances).
Alexandre Danault
la source
app_path().'/library'
, dans start / global.php.sitehelpers.php
Ma façon de faire est de créer un nouveau dossier dans le
/app
répertoire à la racine de votre projet Laravel 4. Ajoutez ensuite ce dossier au premier tableau du/app/start/global.php
fichier comme ceci:Tant que la structure de dossiers dans le nouveau
/app/classes
dossier respecte votre convention d'espacement de noms. Laravel 4 chargera automatiquement toutes les classes / fichiers de ce dossier. De cette façon, il n'est pas nécessaire de fouiller dans les fichiers de composition ou d'exécuter la commande de composition.Je ne sais pas si c'est la meilleure pratique, mais cela fonctionne certainement.
Si vous avez créé un fichier simple appelé
/app/classes/Helpers/Helper.php
comme ceci:Tout ce que vous auriez à faire est d'appeler
Helpers\Helper::helloWorld();
Vous pouvez également alias cette classe d'assistance dans votre
/app/config/app.php
fichier. Ajoutez simplement quelque chose comme ceci à la fin dualiases
tableau:la source
composer dump-autoload
- je l'ai fait et j'ai passé 20 minutes à me gratter la tête.La méthode helpers.php de Laravel consiste à l'ajouter à vos "fichiers" dans composer.json ( https://github.com/laravel/framework/blob/master/composer.json ):
Ce que je fais est de créer de petites classes (quelques méthodes par classe, une ligne par méthode, tout est étendu à partir de quelque chose et DRY, c'est mon objectif),
enregistrez-les dans les applications / bibliothèques et ajoutez-les à composer.json:
Exécuter
Et puis utilisez-les là où vous en avez besoin
Regardez cette vidéo sur le refactoring: http://www.youtube.com/watch?v=DC-pQPq0acs
Au fait, je suis un peu sûr que ce n'était qu'un exemple, mais vous n'aurez peut-être pas besoin d'aide pour formater les dates, car toutes les dates dans Laravel sont des instances de Carbon ( https://github.com/briannesbitt/Carbon ) et il dispose de nombreuses méthodes pour formater la date et l'heure.
la source
formatDDMMAAAA()
commestatic
.Vous pouvez également utiliser
View::share()
avec des fermetures pour y parvenir - je viens de poster à ce sujet: http://www.develophp.org/2014/07/laravel-4-blade-helper-functions/Avantage supplémentaire: vous n'avez pas besoin de créer une classe supplémentaire et de garder l'espace de noms global propre.
la source