Cuando desarrollas con Laravel, una de las tareas más comunes es pasar datos del controlador a la vista. Aunque existen varias formas de hacerlo, usar la función compact()
es una de las más limpias y recomendadas. En este artículo, te explico qué es compact()
, por qué deberías usarla y cuáles son sus ventajas clave.
📌 ¿Qué es compact()
en Laravel?
compact()
es una función nativa de PHP que Laravel utiliza frecuentemente para pasar variables a las vistas. Esta función crea un array asociativo a partir de una lista de nombres de variables.
¿Cuál es el origen de compact()
?
La función compact()
no es exclusiva de Laravel, sino que es una función nativa de PHP, disponible desde PHP 4.0.1. Su propósito original es crear un array asociativo a partir de variables ya definidas, utilizando sus nombres como claves del array. Laravel la adoptó de forma elegante dentro de su flujo MVC, especialmente en los controladores, para facilitar el paso de datos a las vistas. Gracias a su sintaxis limpia y su integración natural con la estructura de Laravel, compact()
se ha convertido en una práctica común en el desarrollo moderno con este framework.
Ejemplo básico:
phpCopiarEditar$user = Auth::user();
$posts = Post::latest()->get();
return view('dashboard', compact('user', 'posts'));
Esto es equivalente a:
phpCopiarEditarreturn view('dashboard', ['user' => $user, 'posts' => $posts]);
Pero mucho más limpio.
✅ Ventajas de usar compact()
en Laravel
1. Código más limpio y legible
Usar compact()
elimina redundancias. No necesitas repetir los nombres de las variables como clave y valor, lo que hace el código más corto y entendible.
2. Menos posibilidades de errores
Al evitar escribir manualmente las claves del array, reduces el riesgo de errores de tipeo. Solo necesitas asegurarte de que la variable esté definida.
3. Ideal para vistas con múltiples variables
Cuando necesitas pasar varias variables a una vista, compact()
mantiene tu código ordenado y fácil de mantener.
phpCopiarEditarreturn view('profile', compact('user', 'settings', 'notifications', 'activity'));
4. Mejora la mantenibilidad
Si cambias el nombre de una variable, solo tienes que cambiarlo una vez. Esto simplifica futuras modificaciones.
🧑💻 Buenas prácticas al usar compact()
- ✅ Usa
compact()
solo cuando las variables tienen el mismo nombre que las claves que deseas pasar. - ❌ No abuses de
compact()
con variables no definidas; puede generar errores si no existen. - ✅ Usa nombres de variables claros y significativos para mejorar la legibilidad del código.
- ❌ Evita pasar muchas variables si no es necesario. Considera agrupar datos en objetos o colecciones.
🔍 Conclusión
Utilizar compact()
en Laravel es una buena práctica que mejora la legibilidad, mantenimiento y limpieza de tu código. Es especialmente útil cuando trabajas con múltiples variables en tus controladores y quieres mantener el código DRY (Don’t Repeat Yourself).
¿Ya estás usando compact()
en tus proyectos Laravel? ¡Cuéntame tu experiencia!
Related

