Configurar helpers en Laravel

Autor: Damián Aguilar
twitter
- Creado el 15/11/2019
composer laravel php frameworks

En ocasiones, podemos necesitar acceder a funciones (helpers), desde cualquier parte de nuestro código.

Laravel no dispone de esta funcionalidad por defecto, pero existen varias formas de configurar nuestra aplicación, para solucionar esto.

Antes de empezar con las diferentes opciones que tenemos, lo primero es crear un archivo donde alojar nuestras funciones o helpers, en mi caso, suelo tener el archivo aquí:

\App\Http\Helpers

En este nuevo archivo: Helpers.php, añadiremos todos los métodos que necesitemos:

<?php

if (! function_exists('userId')) {
    function userId() {
        return auth()->user()->id;
    }
}

Ahora es cuando podemos elegir entre las diferentes opciones para poder tener acceso a los helpers.

a) Mediante el archivo composer.json

Añadimos el campo files, con la ruta hacia nuestro archivo.

"autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "classmap": [
        "database/seeds",
        "database/factories"
    ],
    "files":[
        "app/Http/Helpers.php"
    ]
},

Ahora solo nos falta actualizar composer, y ya estaría:

composer dump

b) Mediante un Service Provider

Crea un nuevo Services Provider, usando artisan:

artisan make:provider HelpersServiceProvider

El archivo se crea en la ruta:

\app\Providers\HelpersServiceProvider.php

Y en el archivo, en el método register(), añadimos:

public function register()
{
    require_once app_path() . '/Http/Helpers.php';
}

Es decir, la ruta a nuestro archivo helpers.

Y ahora en el archivo:

config/app.php

Debemos añadir el nuevo Service Provider a la lista:

App\Providers\HelpersServiceProvider::class,

De estas dos opciones, personalmente, prefiero la segunda, aunque ambas son igualmente válidas.