Aprende Laravel de cero a experto
Sigue este roadmap para aprender Laravel de forma estructurada. Haz clic en cada tema para ver más detalles y marcar tu progreso.
PHP es el lenguaje en que está escrito Laravel. Necesitas dominar variables, tipos de datos, funciones, arrays, bucles y programación orientada a objetos (clases, herencia, interfaces). Sin esta base, Laravel resultará confuso.
Composer es el gestor de dependencias de PHP. Con él instalas Laravel y sus paquetes. Necesitas saber ejecutar composer install, composer require y entender el archivo composer.json.
Laravel se maneja mucho desde la terminal. Necesitas saber navegar directorios (cd, ls), ejecutar comandos, manejar permisos básicos y entender la diferencia entre rutas absolutas y relativas.
Las vistas de Laravel (Blade) generan HTML. Necesitas conocer la estructura HTML básica, formularios, y CSS suficiente para dar estilo a tus páginas. No necesitas ser diseñador, solo entender la estructura.
Control de versiones imprescindible. Necesitas saber hacer git init, add, commit, push, pull y manejar ramas básicas. Laravel y todos los proyectos profesionales usan Git.
Instalar Laravel correctamente en tu sistema operativo. Opciones: Laravel Herd (recomendado para Mac/Windows), Docker con Sail, o instalación manual con PHP + Composer. El entorno correcto desde el principio evita muchos problemas.
Laravel tiene una estructura de carpetas bien definida: app/ (tu código), routes/ (rutas), resources/views (vistas Blade), database/ (migraciones), public/ (archivos públicos), config/ (configuración). Entenderla es fundamental.
El archivo .env contiene las variables de entorno: credenciales de base de datos, claves de API, modo de aplicación. Nunca se sube al repositorio. config/ lee estas variables y las expone al código.
Artisan es la herramienta de línea de comandos de Laravel. Con php artisan puedes crear controladores, modelos, migraciones, ejecutar seeds, limpiar caché y cientos de cosas más. Es el centro de operaciones de tu app.
Las rutas definen qué URL hace qué. En routes/web.php defines GET, POST, PUT, DELETE. Puedes agrupar rutas, darles nombre, protegerlas con middlewares. Es el punto de entrada de cada petición HTTP.
Los controladores reciben la petición HTTP, procesan la lógica y devuelven una respuesta. Viven en app/Http/Controllers. Los controladores resource siguen convenciones REST y reducen código repetitivo.
Blade es el motor de plantillas de Laravel. Permite usar @if, @foreach, @extends, @section, @component y variables {{ $variable }} en archivos .blade.php. Genera HTML limpio sin overhead de rendimiento.
Las migraciones son "control de versiones para tu base de datos". Defines la estructura de tus tablas en PHP, y Laravel las ejecuta en cualquier entorno. Nunca más tocar la base de datos a mano.
Los Seeders rellenan tu base de datos con datos iniciales. Las Factories generan datos falsos realistas usando Faker. Imprescindibles para desarrollo y testing: puedes tener 1000 usuarios de prueba en segundos.
Eloquent es el ORM de Laravel. Cada tabla tiene un Model. Con él puedes hacer User::find(1), User::where("email", $email)->first(), o user->posts. Abstrae el SQL y hace el código más legible.
Laravel permite definir relaciones entre modelos: hasOne, hasMany, belongsTo, belongsToMany, hasManyThrough. Con eager loading (with()) evitas el problema N+1 que mata el rendimiento de las apps.
El Query Builder de Laravel permite construir consultas SQL complejas de forma fluida: DB::table("users")->where()->join()->orderBy()->get(). Más flexible que Eloquent para consultas muy complejas o de alto rendimiento.
Tinker es una REPL interactiva para Laravel. Con php artisan tinker puedes ejecutar código PHP y consultas Eloquent en tiempo real sin crear rutas ni controladores. Ideal para probar y debuggear.
Los middlewares son capas que filtran las peticiones HTTP antes de llegar al controlador. Se usan para autenticación, autorización, logging, throttling y más. Puedes crear tus propios middlewares personalizados.
Laravel Breeze ofrece autenticación completa (registro, login, reset de contraseña) en minutos. Para APIs usa Sanctum (tokens). Para apps SPA o móvil usa Passport (OAuth2). Elige según tu caso de uso.
Laravel tiene un sistema de validación potente: $request->validate(["email" => "required|email"]). Puedes usar Form Requests para limpiar los controladores. Los mensajes de error son automáticos y personalizables.
Las colas permiten ejecutar tareas pesadas en segundo plano: enviar emails, procesar imágenes, llamar a APIs externas. El usuario no espera. Usa Redis o database como driver. Laravel Horizon gestiona workers en producción.
El sistema de eventos desacopla tu código. Cuando ocurre algo (UserRegistered), lanzas un evento. Múltiples listeners reaccionan de forma independiente (EnviarEmailBienvenida, CrearPerfil). Código más limpio y testeable.
Storage::put(), Storage::disk("s3")->upload(). Laravel abstrae el sistema de archivos: puedes guardar en local, S3, DigitalOcean Spaces sin cambiar el código. Imprescindible para apps con uploads.
Cache::remember("key", $ttl, fn() => ...) almacena resultados costosos (consultas lentas, llamadas API) para servirlos rápido. Drivers: file, Redis, Memcached. Puede multiplicar el rendimiento de tu app.
API Resources transforman los modelos Eloquent en JSON estructurado para tu API. Controlas qué campos expones, añades campos calculados y formateas datos. Junto con Sanctum, construyes APIs seguras y bien documentadas.
PHPUnit + las helpers de Laravel permiten escribir Feature tests (prueban flujos completos) y Unit tests (prueban clases aisladas). Con RefreshDatabase y factories tienes tests robustos. Un proyecto sin tests no es mantenible.
El corazón de Laravel. El IoC Container gestiona las dependencias de tu app e inyecta automáticamente las clases que necesitas. Los Service Providers registran bindings y arrancan componentes al iniciar la app.
Repository Pattern separa la lógica de acceso a datos. Service Layer centraliza la lógica de negocio. Estos patrones hacen el código testeable, mantenible y escalable. Imprescindibles en proyectos medianos y grandes.
N+1 es el error de rendimiento más común en Laravel. Usa eager loading (with()), chunking para datasets grandes, índices en base de datos, explain() para analizar queries y Laravel Debugbar para detectar problemas.
Dashboard para gestionar colas Redis en producción. Monitoriza workers, métricas de throughput, jobs fallidos y tiempos de procesamiento. Imprescindible si usas colas Redis en producción.
Debugger elegante para Laravel: inspecciona requests, queries SQL, jobs, emails, notificaciones, excepciones y más en tiempo real. Solo para entornos de desarrollo. Telescope hace el debugging mucho más rápido.
Desplegar Laravel en un VPS con Nginx, PHP-FPM, MySQL y Supervisor para queues. Configurar SSL, permisos de storage, php artisan optimize para caché de rutas y configuración. O usar Laravel Forge/Ploi para simplificarlo.
CSRF protection, SQL injection prevention (Eloquent lo hace automático), XSS con escapado de Blade, autorización con Policies y Gates, rate limiting, encriptación de datos sensibles y HTTPS obligatorio.