I've read a lot of questions of how to make a helper methods on Laravel 5.1. But I dont want to achieve this in a Facade
HelperClass::methodName();
I want to make a Helper Methods just like on this methods Laravel Helper Methods like:
myCustomMethod();
I dont want to make it a Facade. Is this possible? How? Thanks.
If you want to go the 'Laravel way', you can create helpers.php
file with custom helpers:
if (! function_exists('myCustomHelper')) {
function myCustomHelper()
{
return 'Hey, it\'s working!';
}
}
Then put this file in some directory, add this directory to autoload section of an app's composer.json
:
"autoload": {
....
"files": [
"app/someFolder/helpers.php"
]
},
Run composer dumpauto
command and your helpers will work through all the app, like Laravel ones.
If you want more examples, look at original Laravel helpers at /vendor/laravel/framework/Illuminate/Support/helpers.php
To start off I created a folder in my app directory called Helpers
. Then within the Helpers folder I added files for functions I wanted to add. Having a folder with multiple files allows us to avoid one big file that gets too long and unmanageable.
Next I created a HelperServiceProvider.php
by running the artisan command:
artisan make:provider HelperServiceProvider
Within the register method I added this snippet
public function register()
{
foreach (glob(app_path().'/Helpers/*.php') as $filename){
require_once($filename);
}
}
lastly register the service provider in your config/app.php
in the providers array
'providers' => [
'App\Providers\HelperServiceProvider',
]
After that you need to run composer dump-autoload
and your changes will be visible in Laravel.
now any file in your Helpers
directory is loaded, and ready for use.
Hope this works!