🎃 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 10 a Laravel 11
05/13 La actualización a Laravel 11 Actualizar composer.json a Laravel 11 y resolver las dependencias
Tu lectura Quedan 20 min
Lección 5 de 13 · La actualización a Laravel 11

Actualizar composer.json a Laravel 11 y resolver las dependencias

20 min de lectura Laravel 11

Hola, bienvenido. En esta lección empieza la actualización a Laravel 11: vamos a cambiar composer.json con todos los paquetes que lo bloquean y a resolver las dependencias con un solo composer update -W. Haremos todos los cambios a la vez, porque Composer tiene que resolverlos juntos, y por el camino nos vamos a encontrar con un bloqueo que no tiene nada que ver con las dependencias: Composer se niega a instalar Laravel 11 porque toda la rama 11.x tiene avisos de seguridad abiertos.

Al terminar tendremos Laravel 11 instalado y composer qa en rojo, que es lo esperado: la lista de lo que falla nos da el orden de las 4 lecciones siguientes.

Los cambios en composer.json

Con PHP ya resuelto, estos son los cambios de composer.json para los paquetes que, como vimos en la lección 3, bloqueaban la actualización:

Paquete Antes Después Por qué
laravel/framework ^10.10 ^11.0 Es la actualización
laravel/sanctum ^3.3 ^4.0 Sanctum 3 solo admite hasta Laravel 10
spatie/laravel-permission ^5.11 ^6.0 Spatie Permission 5 solo admite hasta Laravel 10
livewire/livewire ^3.0 ^3.4 La guía oficial indica la versión 3.4 como mínimo
doctrine/dbal ^3.7 fuera Laravel 11 ya no lo usa para modificar columnas
laravel/breeze ^1.26 ^2.0 Breeze 1 exige Laravel 10
nunomaduro/collision ^7.0 ^8.1 Collision 7 declara un conflicto con Laravel 11
pestphp/pest-plugin-laravel ^2.0 ^2.4 La versión 2.4 es la que admite Laravel 11
nunomaduro/larastan ^2.6 larastan/larastan ^2.9 El paquete cambió de nombre

Pest sigue en la versión 2, porque Pest 3 llega con la actualización a Laravel 12. Guzzle 7 e Ignition 2 también se quedan como están: el esqueleto de Laravel 11 ya no los incluye, pero siguen funcionando con Laravel 11, y quitarlos no forma parte de esta actualización.

Este es el composer.json con los cambios:

composer.json Modificado +8 −9
6 "license": "MIT",
7 "require": {
8 "php": "^8.2",
− "doctrine/dbal": "^3.7",
9 "guzzlehttp/guzzle": "^7.2",
− "laravel/framework": "^10.10",
− "laravel/sanctum": "^3.3",
+ "laravel/framework": "^11.0",
+ "laravel/sanctum": "^4.0",
12 "laravel/tinker": "^2.8",
− "livewire/livewire": "^3.0",
− "spatie/laravel-permission": "^5.11"
+ "livewire/livewire": "^3.4",
+ "spatie/laravel-permission": "^6.0"
15 },
16 "require-dev": {
17 "fakerphp/faker": "^1.9.1",
− "laravel/breeze": "^1.26",
+ "larastan/larastan": "^2.9",
+ "laravel/breeze": "^2.0",
20 "laravel/pint": "^1.13",
21 "laravel/sail": "^1.26",
22 "mockery/mockery": "^1.4.4",
− "nunomaduro/collision": "^7.0",
− "nunomaduro/larastan": "^2.6",
+ "nunomaduro/collision": "^8.1",
24 "pestphp/pest": "^2.0",
− "pestphp/pest-plugin-laravel": "^2.0",
+ "pestphp/pest-plugin-laravel": "^2.4",
26 "spatie/laravel-ignition": "^2.0"
27 },
28 "autoload": {
Lo que queda de esta lección
  1. 02"Package nunomaduro/larastan is abandoned"
  2. 03Resolver las dependencias con composer update -W
  3. 04"These were not loaded, because they are affected by security advisories"
  4. 05Ignorar solo esos 4 avisos, por su ID
  5. 06La actualización, ya sin bloqueo
  6. 07Lo que falla después de actualizar
  7. 08Lo que queda para las lecciones siguientes
Sigue leyendo con tu suscripción El curso completo, con el certificado y el foro, está incluido en la suscripción. Ver los planes