🎃 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
02/09 Antes de tocar nada composer why-not laravel/framework 12: qué bloquea la actualización y en qué orden se hace
Tu lectura Quedan 10 min
Lección 2 de 9 · Antes de tocar nada

composer why-not laravel/framework 12: qué bloquea la actualización y en qué orden se hace

10 min de lectura Laravel 12

Hola, bienvenido. En esta lección vamos a preguntarle a Composer qué nos impide instalar Laravel 12, antes de cambiar nada en composer.json. composer outdated nos dirá qué paquetes tienen versiones nuevas, y composer why-not, qué paquete impide instalar una versión concreta. Con sus respuestas vamos a decidir el orden de la actualización, y veremos que uno de los bloqueos es un paquete que la guía no menciona: Rector.

En esta lección no vamos a cambiar nada en el proyecto: al terminar, tendremos el plan.

composer outdated: lo que hay por delante

Vamos a empezar por composer outdated. --direct limita la lista a los paquetes que están en nuestro composer.json, sin las dependencias de las dependencias. Esta es la salida el 21 de octubre de 2026 (las versiones más nuevas cambiarán cuando lo lances tú):

Terminal
sail composer outdated --direct
Salida
Legend: ! patch or minor release available - update recommended ~ major release available - update possible driftingly/rector-laravel 1.2.6 ~ 2.5.0 Rector upgrades rules for Lara... guzzlehttp/guzzle 7.16.0 ~ 8.3.0 Guzzle is a PHP HTTP client li... larastan/larastan 2.11.2 ~ 3.13.0 Larastan - Discover bugs in yo... laravel/framework 11.57.0 ~ 12.70.0 The Laravel Framework. laravel/tinker 2.11.1 ~ 3.0.2 Powerful REPL for the Laravel ... livewire/livewire 3.8.10 ~ 4.4.7 A front-end framework for Lara... nunomaduro/collision 8.5.0 ! 8.9.5 Cli error handling for console... pestphp/pest 2.36.1 ~ 3.8.7 The elegant PHP Testing Framew... pestphp/pest-plugin-laravel 2.4.0 ~ 3.2.0 The Pest Laravel Plugin rector/rector 1.2.10 ~ 2.7.0 Instant Upgrade and Automated ...

La lista tiene 9 paquetes con una versión major por delante y uno, Collision, con una versión minor. Y fíjate en lo que falta o no sale como esperarías:

  • rector-laravel aparece con la versión 2.5, no con la 2.7, que es la última. outdated solo enseña las versiones que se pueden instalar con el PHP del contenedor, y las versiones 2.6 y 2.7 de rector-laravel exigen PHP 8.3. Por lo mismo no aparecen Spatie Permission 7 ni Pint: las versiones nuevas de Spatie Permission exigen PHP 8.3, y la versión 1.30 de Pint que tenemos es la última que admite PHP 8.2.
  • Sanctum y Breeze no aparecen, porque la versión instalada ya es la última y admite Laravel 12.

outdated nos dice que hay mucho por delante, pero no qué es obligatorio para Laravel 12 y qué no. Guzzle 8, Tinker 3 y Livewire 4 son versiones major nuevas, y Laravel 12 no exige ninguna de las 3. Para saber qué bloquea la actualización, hay que preguntárselo a Composer directamente.

Lo que queda de esta lección
  1. 02composer why-not: qué bloquea Laravel 12
  2. 03La segunda pregunta: qué bloquea Larastan 3
  3. 04La guía oficial: Updating Dependencies
  4. 05El plan
Sigue leyendo con tu suscripción El curso completo, con el certificado y el foro, está incluido en la suscripción. Ver los planes