🎃 12 meses por 75 €

El plan anual a mitad de precio hasta el 31 de octubre.

Aprovechar la oferta

🎃 Halloween: 12 meses por 75 €

Plan anual a mitad de precio, para altas y renovaciones. Solo hasta el 31 de octubre.
Aprovechar la oferta
Saltar al contenido
Curso Actualizar un proyecto de Laravel 11 a Laravel 12
06/09 La actualización a Laravel 12 Actualizar composer.json a Laravel 12 y aplicar la guía oficial al proyecto
Tu lectura Quedan 12 min
Lección 6 de 9 · La actualización a Laravel 12

Actualizar composer.json a Laravel 12 y aplicar la guía oficial al proyecto

12 min de lectura Laravel 12

Hola, bienvenido. En esta lección vamos a actualizar el proyecto de Laravel 11 a Laravel 12. Con Pest 3, Larastan 3 y Rector 2 ya instalados y en verde, la actualización se reduce a 2 cambios en composer.json. Después recorreremos la guía oficial de actualización, comparándola con nuestro código, para separar lo que nos afecta de lo que no.

Es el cuarto paso del plan que trazamos en la lección 2, y el primero que cambia el framework.

Laravel 12 en composer.json, sin las excepciones

Son 2 cambios: laravel/framework pasa de ^11.0 a ^12.0, y salen las 4 excepciones de config.policy.advisories.ignore-id. ¿Por qué a la vez? Porque Laravel 12.69 es la primera versión que incluye las 4 correcciones, así que con ^12.0 Composer elige una versión sin avisos y las excepciones ya no hacen falta. Y si alguna versión 12.x anterior sigue afectada por un aviso, Composer la descarta: a partir de ahora, el bloqueo vuelve a proteger el proyecto.

Así queda composer.json, ya sin la sección policy:

composer.json Modificado +1 −11
7 "require": {
8 "php": "^8.2",
9 "guzzlehttp/guzzle": "^7.2",
− "laravel/framework": "^11.0",
+ "laravel/framework": "^12.0",
11 "laravel/sanctum": "^4.0",
12 "laravel/tinker": "^2.8",
13 "livewire/livewire": "^3.4",
71 "allow-plugins": {
72 "pestphp/pest-plugin": true,
73 "php-http/discovery": true
− },
− "policy": {
− "advisories": {
− "ignore-id": {
− "PKSA-mdq4-51ck-6kdq": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.60. Quitar al subir a Laravel 12."},
− "PKSA-3r5d-mb8f-1qw9": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.60. Quitar al subir a Laravel 12."},
− "PKSA-m5cs-t1y6-qpcs": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.61.1. Quitar al subir a Laravel 12."},
− "PKSA-d5tc-s1qs-h781": {"on-audit": false, "reason": "Sin parche en Laravel 11, corregido en la 12.69. Quitar al subir a Laravel 12."}
− }
− }
74 }
75 },
76 "minimum-stability": "stable",

Vamos a resolver las dependencias con -W, igual que en las lecciones anteriores. Esta es la salida el 21 de octubre de 2026 (las versiones serán más nuevas cuando lo lances tú):

Terminal
sail composer update -W
Salida
Loading composer repositories with package information Updating dependencies Lock file operations: 1 install, 2 updates, 0 removals - Upgrading laravel/framework (v11.57.0 => v12.70.1) - Upgrading livewire/livewire (v3.8.10 => v3.8.11) - Locking symfony/polyfill-php84 (v1.43.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 1 install, 2 updates, 0 removals ... > @php artisan vendor:publish --tag=laravel-assets --ansi --force INFO No publishable resources for tag [laravel-assets]. No security vulnerability advisories found.

3 paquetes, y nada más. Después de 3 lecciones con las herramientas, esto es todo lo que cambia al actualizar Laravel de la versión 11 a la 12:

  • Laravel 12.70, la última versión de la rama 12.x ese día.
  • symfony/polyfill-php84, una dependencia nueva de Laravel 12 que añade a PHP 8.2 algunas funciones y clases de PHP 8.4. La veremos en uso en la lección siguiente, en uno de los archivos de configuración.
  • Livewire 3.8.11, un parche que se publicó ese mismo día. No lo hemos pedido: composer update sin nombres de paquetes actualiza todo lo que permiten las restricciones, y ^3.4 lo permite. Livewire 4 no entra, porque la restricción sigue en la rama 3. Si sigues el curso después del 21 de octubre de 2026, este parche ya te habrá llegado con el composer update de la lección 3, y aquí no lo verás.

Y fíjate en la última línea. En las lecciones 3 y 4, cada update terminaba contando los 4 avisos de Laravel 11, y esta vez Composer no encuentra ninguno.

Lo que queda de esta lección
  1. 02composer audit, limpio por primera vez
  2. 03La guía de Laravel 12 en nuestro proyecto
  3. 04HasUuids genera UUID v7
  4. 05El contenedor respeta el valor por defecto de Sla
  5. 06El commit y lo que queda de la guía
Sigue leyendo con tu suscripción El curso completo, con el certificado y el foro, está incluido en la suscripción. Ver los planes