Cómo Crear Helpers en Laravel (Funciones Globales)

Los helpers son una de las funciones o estructuras que más se usa al momento de programar, estos nos permiten reciclar funcionalidades, mantener el código y respetar el principio de singularidad del patrón SOLID.

A continuación, te muestro las 2 formas en las que uso helpers para mis proyectos en laravel.

Método o Función Global

Esta es la forma más conocida y más usada por todos los desarrolladores que, además de ser fácil de implementar, te permite usar una funcionalidad en cualquier lugar de tu aplicación sin tener que importar o usar nada externo al archivo en el que se va a usar.

Seguidamente, te explico como crear una función global en laravel y registrarla en el composer.json para que la puedas usar globalmente.

Crear Función Global

Antes de crear nuestra función, vamos a crear una carpeta en el directorio app del root de tu aplicación, en nuestro caso lo hemos llamado Helpers y dentro hemos creado un archivo de php llamado methods, en el cual deberás crear todos tus métodos o bien separarlos e incluirlos en dicho archivo.

A continuación, te muestro un ejemplo de cómo deben quedar nuestros helpers.

<?php if (!function_exists('my_method')) { function my_method() { // } }
Registro de una Nueva Función si esta no Existe

Cómo puedes ver, antes de cada método existe un condicional que verifica que la función no exista o no se haya registrado previamente en nuestra aplicación, de esa forma evitamos que haya un conflicto y se generen errores dentro de nuestro código.

Registrar Helpers

Una vez tienes listo tu archivo de helpers, vamos a registrarlos en el composer.json usando el path de nuestro archivo dentro de un atributo del autoload llamado files.

{ "autoload": { "files": [ "app/Helpers/methods.php" ] }, }
Registro del Archivo de Métodos en el composer.json

Una vez has registrado tus helpers, deberás refrescar el autoload del composer para que laravel pueda hacer uso de estos métodos globalmente.

composer dumpautoload
Comando para Recargar los Archivos del Composer

Sugerencias

Aunque esta forma de crear funciones globales es la que más se usa, personalmente, he hecho una ligera modificación para que sea más sencillo y útil crear esa misma función, evitando tener que escribir el condicional y permitiendo acceder a ellas de forma más rápida y fácil.

Esta modificación de la que te hablo, es simplemente usar un prefijo que no se haya usado en la aplicación, tal y como lo muestro a continuación.

<?php function x_method() { // }
Nombre de una Función con un Prefijo

En este caso, el prefijo que he usado es "x_" de manera que cuando quieras usar una función que tu has registrado, simplemente vas a escribir el prefijo "x_" y el idle, en mi caso Visual Studio Code, te mostrará todos las funciones globales que inician con ese prefijo, permitiendote tener un rápido acceso al listado de funciones que has escrito y sobre todo, sin interferir en los métodos del propio framework.