28 de febrero de 2023

Cómo actualizar tu proyecto Laravel a la última versión (Laravel 13 en 2026)

Foto de Marco Orta Marco Orta | 5 mins de lectura
Compartir
Terminal mostrando un composer update durante la actualización mayor de un proyecto Laravel
Tabla de Contenidos

    ⚙️ Actualizado para Laravel 13 (marzo 2026). Si todavía estás en Laravel 9, 10 u 11, los pasos que verás abajo siguen siendo válidos: la mecánica del upgrade no ha cambiado, lo único que cambia son los requisitos de PHP y los paquetes a revisar.

    Una de las preguntas más recurrentes de los desarrolladores Laravel es cómo actualizar el proyecto a la última versión sin romperlo. La buena noticia es que Laravel 13 se publicó con un enfoque de minimal breaking changes y un upgrade path estimado en unos 10 minutos. La mala: si arrastras un proyecto desde Laravel 9 o anterior, conviene subir versión por versión, no saltar varias a la vez.

    Versiones actuales y soporte (2026)

    VersiónEstadoPHP soportadoBug fixes hastaSeguridad hasta
    Laravel 13Current (17 mar 2026)8.3 – 8.5Q3 202717 mar 2028
    Laravel 12Bug fixes8.2 – 8.513 ago 202624 feb 2027
    Laravel 11End of life8.2 – 8.4CerradoCerrado (12 mar 2026)
    Laravel 10End of life8.1 – 8.3CerradoCerrado
    Laravel 9 y anterioresEnd of life8.0CerradoCerrado

    Datos de la política de soporte oficial: 18 meses de corrección de bugs y 2 años de seguridad para cada versión mayor. Laravel 12 no es LTS — Laravel dejó de publicar versiones LTS hace años.

    Si estás en Laravel 9, 10 u 11, actualiza ya: ya no recibes parches de seguridad. Si estás en 12, el salto a 13 es trivial, pero recuerda que pierdes los bug fixes el 13 de agosto de 2026.

    📋 Esta guía cubre la mecánica del upgrade. Si lo que buscas es la lista concreta de qué se rompe al pasar de la 12 a la 13 —los dos cambios de impacto alto, los dos medios y los quince bajos, con código—, la tienes en Laravel 13: qué se rompe de verdad al actualizar.

    Requisitos previos para Laravel 13

    • PHP 8.3 mínimo, con soporte hasta PHP 8.5. No es cierto que exija 8.4: con 8.3 funciona.
    • Composer 2.7 o superior.
    • Una base de datos compatible (MySQL 8, MariaDB 11, PostgreSQL 16, SQLite, SQL Server).
    php -v
    composer --version
    

    Paso 1: respaldo y rama de trabajo

    Antes de tocar nada, crea una rama de Git dedicada y haz backup de la base de datos.

    git checkout -b upgrade/laravel-13
    mysqldump -u usuario -p mi_proyecto > backup.sql
    

    Paso 2: actualiza Laravel a la última patch de tu versión actual

    Antes de saltar a la siguiente major, ponte al día dentro de tu major actual.

    composer update
    php artisan test
    

    Si los tests fallan aquí, arregla primero antes de continuar.

    Paso 3: edita composer.json

    Cambia las versiones del framework y de los paquetes principales. Ejemplo para subir a Laravel 13:

    "require": {
        "php": "^8.3",
        "laravel/framework": "^13.0",
        "laravel/sanctum": "^4.0",
        "laravel/tinker": "^2.10"
    },
    "require-dev": {
        "phpunit/phpunit": "^11.0",
        "nunomaduro/collision": "^8.0",
        "spatie/laravel-ignition": "^2.7",
        "fakerphp/faker": "^1.23",
        "laravel/pint": "^1.13"
    }
    

    Si vas a Laravel 12 desde 11, ajusta a "laravel/framework": "^12.0" y revisa cada paquete equivalente.

    Paso 4: actualiza dependencias

    composer update --with-all-dependencies
    

    Si Composer reporta conflictos, casi siempre son paquetes de terceros que aún no soportan la nueva major. Las opciones son:

    1. Esperar a que el paquete saque una versión compatible.
    2. Buscar un fork mantenido.
    3. Reemplazar el paquete por una alternativa moderna (muchos paquetes han sido absorbidos por el core de Laravel en versiones recientes).

    Paso 5: revisa la guía oficial de upgrade

    Esto es lo más importante. Cada major tiene su guía oficial detallada:

    Léela completa antes de ejecutar y aplica los cambios marcados con Likelihood of impact: High. Para Laravel 13 son muy pocos: cambios menores en helpers, alguna firma de método y la actualización a Symfony 8.

    Paso 6: limpieza de cachés y reconstrucción

    php artisan optimize:clear
    php artisan config:clear
    php artisan route:clear
    php artisan view:clear
    php artisan event:clear
    php artisan cache:clear
    composer dump-autoload -o
    

    Paso 7: regenera archivos del framework si es necesario

    Algunas releases (Laravel 11 en su día) cambiaron el esqueleto del proyecto (bootstrap/app.php reemplazó a varios archivos de configuración). Si vienes de muy atrás, considera comparar tu estructura con un laravel new recién creado y migrar manualmente los archivos críticos.

    Paso 8: ejecuta las pruebas y verifica manualmente

    php artisan test
    php artisan migrate:status
    

    Y dale una vuelta manual al panel de administración, a las rutas API y a cualquier flujo crítico. Los problemas más típicos suelen estar en:

    • Middleware personalizado con firmas obsoletas.
    • Service providers que registran cosas antiguas.
    • Paquetes de terceros abandonados.
    • Notificaciones y mailables con métodos cambiados.

    Paso 9: aprovecha lo nuevo de Laravel 13

    Mientras actualizas, vale la pena revisar las funcionalidades que Laravel 13 trae listas para usar:

    • Laravel AI SDK integrado: una API unificada para LLMs, embeddings, agentes con tool calling y vector stores.
    • Passkey authentication y vector search de primera mano.
    • Atributos PHP nativos para controladores y jobs: #[Middleware], #[Authorize], #[Tries], #[Backoff], #[Timeout].

    Errores frecuentes y cómo resolverlos

    • “Composer detected issues in your platform”: te falta subir PHP. Instala 8.4 con Laravel Herd en local.
    • “Class X not found”: revisa los namespaces movidos en la guía oficial.
    • storage/ con permisos rotos: corre php artisan storage:link y revisa permisos.
    • Sesiones que se invalidan: regenera php artisan key:generate solo si es seguro (rompe sesiones existentes en producción).

    Conclusión

    Actualizar Laravel ya no es la odisea que era hace unos años. Si mantienes tu proyecto al día (una major por año), cada upgrade es cuestión de un par de horas. Si llegas tarde y tienes que saltar varias versions, hazlo de una en una, ejecuta los tests entre cada paso y revisa siempre la guía oficial.

    Si ya estás en Laravel 13 y quieres aprovechar el nuevo AI SDK, te recomiendo continuar con Cómo construir un agente de IA con Laravel y MCP y Cómo integrar la API de OpenAI en Laravel.

    ¿Tuviste algún error durante el upgrade? Déjalo en los comentarios y lo revisamos.

    Compartir

    Buscar

    Etiquetas

    IA Tutorial Laravel PHP JavaScript Desarrollo Web Buenas Prácticas Migración Laravel 13 SEO Claude Herramientas Seguridad OpenAI MCP