Qué son las funciones auxiliares
Laravel ofrece muchas funciones PHP globales (helpers). El propio framework las usa internamente, pero también puedes utilizarlas libremente en tu aplicación. Las funciones auxiliares se agrupan en las siguientes categorías:- Arrays y objetos: la clase
Arr::y funciones comodata_get(). - Números: la clase
Number::. - Rutas del sistema de ficheros: funciones para obtener rutas como
app_path()ystorage_path(). - URLs: funciones de generación de URL como
route(),url()yasset(). - Otras: utilidades muy utilizadas como
config(),collect()oauth().
Las funciones auxiliares pueden llamarse desde cualquier lugar sin necesidad de
use. Para las clases Arr o Number sí necesitas importarlas con use Illuminate\Support\Arr;, etc.Helpers de arrays (clase Arr)
Arr::get(): obtener valores anidados con notación de punto
Recupera valores anidados de un array multidimensional utilizando notación de punto (foo.bar.baz). Si la clave no existe se devuelve el valor por defecto.
Arr::set(): asignar un valor anidado
Arr::has(): comprobar la existencia de una clave
Arr::only() / Arr::except(): filtrar o excluir claves
Muy útiles para quedarte solo con las claves necesarias, o excluir claves indeseadas, de los datos de una petición o de un array de configuración.
Arr::pluck(): extraer una clave concreta de arrays anidados
Arr::first() / Arr::last(): primer o último elemento que cumple una condición
Arr::flatten(): aplanar un array multidimensional
Arr::wrap(): garantizar que el valor sea un array
Si el valor no es un array lo envuelve en uno. Con null se obtiene un array vacío. Ideal para aceptar argumentos flexibles en funciones.
Arr::sort(): ordenar por valor
Arr::dot() / Arr::undot(): convertir a notación de punto y viceversa
Arr::join(): unir un array como cadena
data_get(): acceso a datos anidados
Versión más versátil de Arr::get(). Funciona con arrays, objetos, modelos Eloquent y colecciones.
Helpers de números (clase Number)
Number::format(): dar formato legible a un número
Number::currency(): formato monetario
Number::fileSize(): tamaño de archivo en formato legible
Number::abbreviate(): notación abreviada para números grandes
Number::percentage(): porcentaje
Helpers de rutas de sistema
Devuelven rutas absolutas dentro de la aplicación, correctas en cualquier entorno o destino de despliegue.Helpers de URL
route(): generar la URL de una ruta con nombre
url(): generar la URL absoluta de una ruta arbitraria
asset(): URL de un asset estático
to_route(): redirigir a una ruta con nombre
Otras funciones auxiliares muy utilizadas
config(): obtener y asignar valores de configuración
collect(): crear una colección
auth(): obtener el usuario autenticado
blank() / filled(): comprobar si un valor está vacío
blank() considera vacíos null, cadenas vacías, cadenas solo con espacios y colecciones/arrays vacíos. filled() es la operación inversa.
abort() / abort_if() / abort_unless(): excepciones HTTP
dd() / dump(): depuración
dispatch(): encolar un job
encrypt() / decrypt(): cifrado
env(): obtener variables de entorno
Cuándo usar Arr y cuándo collect()
La clase Arr:: está pensada para operaciones sobre arrays PHP nativos, mientras que collect() devuelve un objeto colección.
Los resultados de Eloquent ya son colecciones, así que no necesitas envolverlos con
collect(). Para operaciones sencillas sobre arrays, Arr:: da como resultado un código más simple.Resumen
Lista de helpers habituales
Lista de helpers habituales
| Helper | Uso |
|---|---|
Arr::get($array, 'a.b.c', $default) | Acceso seguro a arrays anidados |
Arr::only($array, $keys) | Conservar solo las claves indicadas |
Arr::except($array, $keys) | Excluir las claves indicadas |
Arr::pluck($array, 'key') | Extraer los valores de una clave |
Arr::flatten($array) | Aplanar un array multidimensional |
Arr::wrap($value) | Asegurar que el valor es un array |
data_get($target, 'a.*.b') | Acceso con comodines |
Number::format($n) | Formato numérico legible |
Number::currency($n, 'EUR') | Formato monetario |
Number::fileSize($bytes) | Tamaño de archivo legible |
route('name', $params) | URL de una ruta con nombre |
url('path') | Generar URL absoluta |
asset('path') | URL de un asset estático |
config('key', $default) | Obtener configuración |
collect($array) | Crear una colección |
auth()->user() | Obtener el usuario actual |
blank($value) | Comprobar si está vacío |
filled($value) | Comprobar si no está vacío |
abort(403) | Lanzar una excepción HTTP |
dispatch($job) | Encolar un job |
env('KEY', $default) | Obtener una variable de entorno |
Clase Arr frente a collect()
Clase Arr frente a collect()
Cuándo usar la clase
Arr:::- Operaciones sencillas sobre arrays (acceder a claves anidadas, filtrar claves…).
- Cuando no quieres la sobrecarga de una colección.
- Si prefieres seguir trabajando con arrays.
collect():- Cuando encadenas varias operaciones.
- Al procesar resultados de Eloquent (ya son colecciones).
- Cuando necesitas métodos propios de las colecciones como
map,filterogroupBy.