LaravelCustom Helper function

Introduction

Adding custom helpers can assist you with your development speed. There are a few things to take into consideration while writing such helper functions though, hence this tutorial.

Remarks

Just a few pointers:

  • We've put the function definitions within a check (function_exists) to prevent exceptions when the service provider is called twice.
  • An alternative way is registering the helpers file from the composer.json file. You can copy the logic from the laravel framework itself.

document.php

<?php

if (!function_exists('document')) {
    function document($text = '') {
        return $text;
    }
}

Create a helpers.php file, let's assume for now it lives in app/Helpers/document.php. You can put many helpers in one file (this is how Laravel does it) or you can split them up by name.

HelpersServiceProvider.php

Now let's create a service provider. Let's put it under app/Providers:

<?php

namespace App\Providers;

class HelpersServiceProvider extends ServiceProvider
{
    public function register()
    {
        require_once __DIR__ . '/../Helpers/document.php';
    }
}

The above service provider load the helpers file and registers your custom function automatically. Please make sure you register this HelpersServiceProvider in your config/app.php under providers:

'providers' => [
     // [..] other providers
     App\Providers\HelpersServiceProvider::class,
]

Use

Now you can use the function document() everywhere in your code, for example in blade templates. This example only returns the same string it receives as an argument

<?php
Route::get('document/{text}', function($text) { 
    return document($text);
});

Now go to /document/foo in your browser (use php artisan serve or valet), which will return foo.