Come creare methods di supporto su Laravel e non su una facciata

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!