Cómo hacer upgrade de Laravel 8 a Laravel 9
Hace pocos días ha salido la nueva versión de Laravel la versión 9, en este tutorial te mostraré cómo hacer upgrade de Laravel 8 a Laravel 9 para que tengas las últimas funcionalidades y seguridad en todos tus proyectos. Sin más, manos a la obra.
Requisitos previos
- Es muy importante que en tu servidor o ambiente de desarrollo funcione PHP 8 ya que Laravel 9 sólo funciona con esta versión de PHP.
- Acceso SSH a tu servidor (si estás en local no hace falta)
Cómo hacer upgrade de Laravel 8 a Laravel 9
1. Hacer cambios en el archivo composer.json
Abre el proyecto que quieres hacer upgrade con tu editor de textos y abre el archivo composer.json

1.1 Cambiar versión de PHP
Laravel 9 únicamente funciona con la versión 8 de PHP por lo que es necesario cambiarlo en este archivo:
"php": "^8.0",

1.2 Cambiar versión de Laravel
En la línea en donde se muestra la versión de Laravel cambia a Laravel 9:
"laravel/framework": "^9.0"

1.3 Cambiar versión de nunomaduro
En la línea en donde se encuentra nunomaduro/collision de debe cambiar a la versión 6:
"nunomaduro/collision": "^6.1",

1.4 Remplazar librería facade/ignition
Es necesario reemplazar la librería facade/ignition por spatie/laravel-ignition:
“spatie/laravel-ignition”: “^1.0”

Cambia esa línea por:

2. Correr composer update
Desde la terminal de comandos abierta en la raíz de tu proyecto escribe:
composer update

En este caso me muestra un error con la librería shoppingcart por lo que es necesario ir a la documentación de la librería bumbummen99/shoppingcart en GitHub. Me comuniqué con el autor y me contesto que actualmente esta librería solo funciona con Laravel 8 y que ellos ya están trabajando en la actualización para que corra en Laravel 9.
Actualización. La librería shoppingcart ya ha sido actualizada por su autor y ahora al ejecutar el comando composer update se actualiza automáticamente y el error anterior ya no se muestra.
composer update

Ahora arrojó un problema con los headers, para solucionarlo abre el archivo que se encuentra en app/Http/Middleware/TrustProxies.php y localiza en el inicio del archivo la línea:
use Fideloper\Proxy\TrustProxies as Middleware;

Esa línea se debe cambiar por:
use Illuminate\Http\Middleware\TrustProxies as Middleware;

Verifica al final del archivo si tienes esta línea:
protected $headers = Request::HEADER_X_FORWARDED_ALL;
La debes de cambiar por:
protected $headers = Request::HEADER_X_FORWARDED_FOR| Request::HEADER_X_FORWARDED_HOST| Request::HEADER_X_FORWARDED_PORT| Request::HEADER_X_FORWARDED_PROTO| Request::HEADER_X_FORWARDED_AWS_ELB;
Ahora desde la terminal escribe:
composer remove fideloper/proxy
Y vuelve a correr:
composer update

Ya se instalaron correctamente las librerías, ahora ve a la terminal y escribe:
php artisan --version
Verás que ya está instalado Laravel 9:

Te recomiendo probar cada una de las vistas y funciones de tu aplicación antes de subir los cambios a tu servidor de producción.
Conclusión
En este tutorial aprendiste a cómo hacer upgrade de Laravel 8 a Laravel 9 para más información lee la guía oficial que encontrarás al final de este post, si te aparecen errores en algunas de tus librerías ve a la documentación oficial de la librería para ver cómo solucionar el problema. Si te fue de ayuda este tutorial te invito a compartirlo en tus redes sociales y si tienes dudas o comentarios déjalos en la caja de comentarios, estaré al pendiente de ellos. Saludos.
Fuente: Upgrade Guide Laravel
