Ho letto un sacco di domande su come creare un metodo di supporto su Laravel 5.1. Ma non voglio realizzarlo in una facciata
HelperClass::methodName();
Voglio fare un metodo di supporto proprio come su methods Metodi di aiuto di Laravel come:
myCustomMethod();
Non voglio farne una facciata. È ansible? Come? Grazie.
Se vuoi andare in "modo Laravel", puoi creare il file helpers.php
con gli helper personalizzati:
if (! function_exists('myCustomHelper')) { function myCustomHelper() { return 'Hey, it\'s working!'; } }
Quindi inserisci questo file in una directory, aggiungi questa directory alla sezione di caricamento automatico di composer.json
di un'app:
"autoload": { .... "files": [ "app/someFolder/helpers.php" ] },
Esegui il command composer dumpauto
e i tuoi aiutanti functionranno attraverso tutte le app, come quelle di Laravel.
Se vuoi altri esempi, guarda gli aiutanti di Laravel originali su /vendor/laravel/framework/Illuminate/Support/helpers.php
Per iniziare ho creato una cartella nella mia directory app chiamata Helpers
. Quindi all'interno della cartella Helpers ho aggiunto i file per le funzioni che volevo aggiungere. Avere una cartella con più file ci consente di evitare un file di grandi size che diventa troppo lungo e ingestibile.
Successivamente ho creato un HelperServiceProvider.php
eseguendo il command artisan:
artisan make:provider HelperServiceProvider
All'interno del metodo di logging ho aggiunto questo snippet
public function register() { foreach (glob(app_path().'/Helpers/*.php') as $filename){ require_once($filename); } }
infine registra il fornitore di servizi nel tuo config/app.php
nell'arrays dei provider
'providers' => [ 'App\Providers\HelperServiceProvider', ]
Dopodiché è necessario eseguire composer dump-autoload
e le modifiche saranno visibili in Laravel.
ora qualsiasi file nella directory Helpers
è caricato e pronto per l'uso.
Spero che questo funzioni!