Guía paso a paso para crear helpers personalizados en Laravel

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: Por qué las funciones helper son imprescindibles en Laravel

\n\n

Si alguna vez has programado en Laravel, seguro te ha pasado: en un controlador o plantilla necesitas formatear una fecha, recortar un texto, verificar permisos o generar un slug una y otra vez. Copias el mismo fragmento de código de un proyecto a otro y luego maldices la duplicación.

\n\n

¿Te suena familiar? Bienvenido al club. En Stack Overflow, la pregunta "How to create custom helper functions in Laravel" acumula miles de visitas, y no es casualidad. Las funciones helper (o simplemente "helpers") son tu manera de decirle "no" al copia-pega y "sí" a un código limpio y reutilizable.

\n\n

En este tutorial no solo te mostraremos cómo crear tu primera función helper. Analizaremos tres métodos probados, desde el más simple hasta el más avanzado con carga automática mediante Composer. Aprenderás a organizar tus helpers para que no se conviertan en un caos y cómo probarlos sin dolores de cabeza.

\n\n

¡Comencemos!

\n\n

¿Qué es una función helper y para qué sirve?

\n\n

Una función helper es una función PHP común que realiza una tarea específica. Laravel ya incluye helpers integrados como str_slug(), route(), config() y otros. Pero tarde o temprano necesitarás algo propio, como una función para formatear un número de teléfono o generar un identificador único.

\n\n

Ventajas de los helpers personalizados:

\n
    \n
  • Reutilización de código — lo escribes una vez, lo usas en todas partes.
  • \n
  • Legibilidad — en lugar de 10 líneas con condiciones, escribes formatPhone($number).
  • \n
  • Facilidad de prueba — los helpers se cubren fácilmente con tests unitarios.
  • \n
  • Gestión centralizada — cambias la lógica en un solo lugar y se aplica a todo el proyecto.
  • \n
\n\n

Pero hay una trampa: una organización incorrecta de los helpers puede convertir tu proyecto en un caos. Por eso, hagámoslo bien desde el principio.

\n\n

Método 1: Clásico — archivo helpers.php manual

\n\n

La forma más simple y clara para principiantes. Creamos un archivo app/helpers.php y lo vinculamos en composer.json.

\n\n

Paso 1. Crear el archivo helpers.php

\n\n

Ve a la raíz de tu proyecto Laravel y crea el archivo app/helpers.php. Dentro, escribe una función simple:

\n\n
<?php\n\nif (!function_exists('formatDate')) {\n    function formatDate($date, $format = 'd.m.Y')\n    {\n        if (!$date) {\n            return null;\n        }\n        return Carbon\\Carbon::parse($date)->format($format);\n    }\n}
\n\n

Observa el envoltorio if (!function_exists(...)). Es un seguro contra conflictos si la función ya está definida en otro lugar. Usa siempre esta estructura.

\n\n

Paso 2. Vincular el archivo mediante Composer

\n\n

Abre composer.json y en la sección autoload agrega:

\n\n
"files": [\n    "app/helpers.php"\n]
\n\n

Debería quedar algo así:

\n\n
"autoload": {\n    "psr-4": {\n        "App\\\\": "app/"\n    },\n    "files": [\n        "app/helpers.php"\n    ]\n}
\n\n

Ahora ejecuta el comando en la terminal:

\n\n
composer dump-autoload
\n\n

¡Listo! Ahora puedes usar formatDate() en cualquier parte de tu aplicación Laravel: controladores, modelos, plantillas Blade.

\n\n

Método 2: Mediante Service Provider (más avanzado)

\n\n

Este método es ideal si quieres controlar estrictamente cuándo y qué helpers se cargan. Por ejemplo, si tienes helpers solo para el panel de administración o para la API.

\n\n

Paso 1. Crear un Service Provider

\n\n

Ejecuta el comando artisan:

\n\n
php artisan make:provider HelperServiceProvider
\n\n

Abre el archivo creado app/Providers/He

Blogs

Book Recommendations