How do I make global helper functions in laravel 5?
An easy and efficient way of creating a global functions file is to autoload it directly from Composer. The autoload section of composer accepts a files
array that is automatically loaded.
Create a
functions.php
file wherever you like. In this example, we are going to create in insideapp/Helpers
.Add your functions, but do not add a class or namespace.
<?php function global_function_example($str) { return 'A Global Function with '. $str; }
In
composer.json
inside theautoload
section add the following line:"files": ["app/Helpers/functions.php"]
Example for Laravel 5:
"autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" }, "files": ["app/Helpers/functions.php"] // <-- Add this line },
Run
composer dump-autoload
Done! You may now access global_function_example('hello world')
form any part of your application including Blade views.
Create a new file in your app/Helpers directory name it AnythingHelper.php An example of my helper is :
<?php
function getDomesticCities()
{
$result = \App\Package::where('type', '=', 'domestic')
->groupBy('from_city')
->get(['from_city']);
return $result;
}
generate a service provider for your helper by following command
php artisan make:provider HelperServiceProvider
in the register function of your newly generated HelperServiceProvider.php add following code
require_once app_path('Helpers/AnythingHelper.php');
now in your config/app.php load this service provider and you are done
'App\Providers\HelperServiceProvider',