🎃 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 escrito

Actualizar un proyecto de Laravel 10 a Laravel 11

Actualiza paso a paso un proyecto real de Laravel 10 a Laravel 11, desde las dependencias hasta la estructura nueva sin Kernels.

Laravel11 PHP8.2 Laravel Sail1.69 Composer2.10 Laravel Sanctum4 Laravel Breeze2 Spatie Permission6 Livewire3 Pest2 Larastan2 Rector1.2 rector-laravel1.2
Lecciones
13
Lectura
206 min
Nivel
Intermedio
Actualizado
actualizar-proyecto-laravel-10-a-11 · proyecto final
Archivos
app/Http/Controllers/Auth/
AuthenticatedSessionController.php L12
ConfirmablePasswordController.php L12
EmailVerificationNotificationController.php L12
EmailVerificationPromptController.php L12
+29 archivos más
Lecciones
  1. 01 El proyecto Laravel 10 de partida que vamos a actualizar a Laravel 11
  2. 02 Tests y Larastan antes de actualizar Laravel: la red de seguridad
  3. 03 composer outdated y composer why-not: qué bloquea la actualización a Laravel 11
  4. 04 Cambiar la versión de PHP en Laravel Sail: de PHP 8.1 a PHP 8.2
+9 lecciones más

Hola, bienvenido. Empezamos un nuevo curso en CursosDesarrolloWeb.es, en el que vamos a actualizar un proyecto real de Laravel 10 a Laravel 11, paso a paso, con sus tests y Larastan comprobando cada cambio.

La guía oficial dice que la actualización lleva 15 minutos, y para el esqueleto de Laravel es cierto. Pero un proyecto real no es el esqueleto. El de este curso, por ejemplo, tiene Breeze, un paquete de roles, una API con tokens y migraciones de hace años, como muchos proyectos que siguen en Laravel 10. Y Laravel 10 no recibe parches de seguridad desde febrero de 2025, así que tarde o temprano esos proyectos hay que actualizarlos.

Qué vamos a hacer

Vamos a trabajar sobre un proyecto de tickets de soporte con Breeze, Sanctum, Spatie Permission y Livewire. Está en GitHub, partiremos de su versión en Laravel 10 y lo iremos actualizando juntos, con un commit por lección. Este es el orden que seguiremos:

  • Primero dejaremos en verde sus tests, Larastan y Pint, que serán los que nos avisen de cada fallo.
  • composer outdated y composer why-not nos dirán qué paquetes bloquean la actualización y cuáles no.
  • El siguiente paso será subir PHP de 8.1 a 8.2 en Laravel Sail, todavía en Laravel 10, para que si algo falla sepamos que es por PHP.
  • Con eso hecho, actualizaremos composer.json a Laravel 11. Composer, desde la versión 2.9, no permite instalarlo por sus avisos de seguridad, y verás cómo resolverlo sin desactivar esa protección.
  • Después veremos, uno por lección, los cambios que afectan al proyecto: Spatie Permission 6, Sanctum 4, las migraciones que modifican columnas y Carbon 3, que devuelve decimales donde el código esperaba enteros.
  • Usaremos Rector y rector-laravel para aplicar los cambios mecánicos del código, como pasar $casts al método casts().
  • Y al final, como paso opcional, pasaremos el proyecto a la estructura nueva de Laravel 11, sin Kernel.php, sin Handler.php y sin los providers de Laravel 10.

En cada lección verás el error que aparece, por qué aparece y cómo se soluciona. Como todos los cursos de la plataforma, es un curso súper pragmático: de la guía oficial aplicaremos solo lo que afecta al proyecto.

El stack

Al terminar el curso, el proyecto estará en Laravel 11, sobre PHP 8.2, con Laravel Sail y Composer 2.10. Los paquetes que se actualizan son Laravel Sanctum 4, Laravel Breeze 2, Spatie Permission 6 y Livewire 3. Las comprobaciones se hacen con Pest 2 y Larastan 2, y los cambios de código con Rector 1.2 y rector-laravel 1.2. El proyecto tiene un tag en GitHub por cada estado del curso, así que en cualquier momento podrás comparar lo que llevas hecho con el tag que corresponde.

Lo que no cubre

Este curso no repasa las novedades de Laravel 11: para eso tienes el artículo Novedades en Laravel 11 (se abre en una pestaña nueva). Tampoco usa Laravel Shift ni enseña Rector como herramienta general. Y si tu proyecto lleva Filament, el panel tiene su propia actualización en el curso Upgrade de Filament PHP 3 a 4 (se abre en una pestaña nueva).

Para quién es

Este curso es para ti si mantienes un proyecto Laravel 10 en producción, tuyo o de un cliente, y tienes que subirlo de versión. Necesitas manejarte con Laravel, Composer y Git en tu día a día, y también con Docker y Laravel Sail, porque durante el curso cambiaremos la versión de PHP del contenedor. Si Sail no te suena, te recomiendo que antes pases por el curso Docker y Laravel Sail desde cero (se abre en una pestaña nueva).

Así que, si te interesa, te espero dentro del curso. Espero que te haya gustado esta introducción. Un saludo.

Temario

El curso, lección a lección

13 lecciones · 206 min
Busca en el texto, el código y los comandos de todas las lecciones Solo para suscriptores