¿Symfony 7.4?
Compruébalo. ¿Sin obsoletos?
Comprobado. Bien, ¡por fin ha llegado el momento de actualizar a Symfony 8!
Por suerte, ya hemos hecho la mayor parte del trabajo duro,
así que el proceso de actualización debería ser sencillo.
Empecemos abriendo nuestro archivo composer.json.
Haremos lo mismo que hicimos al actualizar a 7.4.
Edita... Buscar...
Reemplazar...
7.4.* y sustitúyelo por 8.0.*.
Reemplazar todo... Bien.
Voy a comprobarlo un momento. require
la sección se ve bien... Ah,
genial, nuestra opción extra symfony require se ha actualizado. ¡
Yrequire-dev también se ve bien!
Ve al terminal y ejecuta: symfony
composer update Ooo, un error, vamos a desplazarnos un poco hacia arriba. Vale,
nuestro composer.json raíz requiere symfonycasts/tailwind-bundle ^0.9.0 . Este
bundle requiere algunos paquetes de Symfony, pero por desgracia, las versiones de Symfony
8 no son compatibles.
Veamos si hay una versión actualizada.
En el navegador, ve a packagist.org.
Busca tailwind-bundle...
Aquí lo tienes.
Aquí a la derecha, están todas las versiones, selecciona v0.9.0, la versión en la que estamos. Efectivamente
, los paquetes Symfony que requiere sólo soportan hasta Symfony 7. Aquí está la
versión más reciente: v0.12.0, y ¡qué bien, ésta sí es compatible con Symfony 8! Volvamos
a nuestro composer.json... busquemos
el tailwind-bundle... y
cambiemos su versión a ^0.12.0: Probemos de nuevo la actualización.
Huh, otro error.
Veamos qué ocurre. Nuestro
composer.json requiere monolog-bundle ^3.0, pero
parece que monolog-bundle 3 no es compatible con Symfony 8.
Volvamos rápidamente a Packagist y busquemos monolog-bundle. Sí,
la versión 3 no soporta Symfony 8... ¡pero
la versión 4 sí! Volvamos
a composer.json, busquemos monolog-bundle... y
cambiemos su versión a ^4.0: ¿Será la tercera actualización la vencida? ¡Perfecto!
¡Esta vez ha funcionado!
Confirmémoslo ejecutando: symfony console --version ¡Excelente! ¡ Symfony
8.0.10! Ahora
déjame mostrarte un práctico comando de Composer que comprueba
si tienes alguna dependencia obsoleta. Es decir,
dependencias que tienen versiones más recientes disponibles. symfony
composer outdated -D La opción -D significa dependencias directas, es decir, sólo
los paquetes que están en el archivo composer.json de nuestra app. No las
dependencias transitivas, que son las dependencias de nuestras dependencias.
En realidad, sólo me interesan las directas.
Parece que tenemos 3 paquetes que tienen versiones más recientes disponibles. phpdocumentor/reflection-docblock,
symfony/stimulus-bundle y
symfony/ux-turbo pueden actualizarse a la siguiente versión mayor.
Vamos a hacerlo en nuestro archivo composer.json. Busca
phpdocumentor/reflection-docblock y cámbialo por ^6.0. A continuación,
stimulus-bundle, cámbialo por ^3.0. Por último,
ux-turbo, cambia a ^3.0: ¡Actualicemos! ¡Excelente!
Que no haya
errores significa que no hay conflictos con los paquetes actualizados, así que estamos listos. Ejecutar
git status confirma que sólo han cambiado nuestros archivos composer.lock, composer.json y
reference.php. Recuerda que
el archivo reference.php ayuda a tu IDE con la
configuración de Symfony basada en matrices y se genera automáticamente.
Podemos ignorarlo ya que utilizamos una configuración basada en YAML. Confirma
nuestros cambios con: git commit -a -m "upgrade to Symfony 8!" Hmm,
al terminal no le ha gustado mi entusiasmo con el signo de exclamación...
Cancelaré este comando y volveré a intentarlo sin él: git
commit -a -m "upgrade to Symfony 8" ¡Ya está! Ahora
que hemos hecho borrón y cuenta nueva, comprueba si hay actualizaciones de recetas con: symfony
composer recipe:update No, ¡no hay recetas nuevas!
Vuelve al navegador y actualiza la página de inicio. ¡Genial!
¡Estamos en Symfony 8 sin errores! Desde
que actualizamos , confirmaré que funciona haciendo clic en un enlace... ux-turbo Las peticiones turbo
se realizan a través de AJAX y, efectivamente, nuestra
barra de herramientas de depuración web muestra que se ha realizado una petición AJAX.
También hemos actualizado , así que vamos a comprobar que funciona correctamente. Abre stimulus-bundle
las herramientas de desarrollador y comprueba la pestaña de la consola... Estos
registros muestran que Stimulus y nuestros controladores Stimulus se están inicializando correctamente ¡
Eso es todo, amigos!
Espero que hayas aprendido algo valioso de este tutorial y consigas
actualizar tus aplicaciones a Symfony 8 sin problemas. Hasta
la próxima, ¡feliz programación!