Continuando con mis observaciones al libro de Fabien Potencier, «Symfony 5: La vía rápida» (versión del 18 de Abril de 2020 en castellano), hay un capítulo que puede constituirse en un verdadero quebradero de cabeza sin algunas aclaraciones que no están en el libro, porque los hechos que generan la confusión no habían ocurrido aún.
Para ser más claro, en el «Paso 9: Configurando un panel de administración» se propone el uso del bundle EasyAdmin. A la hora de escribir el libro, este bundle, desarrollado por Javier Eguiluz, estaba en su versión 2. Justo en Junio de 2020, se actualizó a la versión 3, muy distinta a la 2. En consecuencia, cuando ejecutas el comando para instalar el bundle, tal como está en el libro:
symfony composer req admin
Potencier supone que estás instalando la versión 2 (la versión 3, no existía aún), pero en realidad composer instala la versión 3, de EasyAdmin. Luego, todo lo que se dice en ese capítulo como: «Accede al panel de administración generado en /admin. ¡Boom! Ya dispones de una interfaz de administración…» no funciona.
Update: Hoy, 23 de Octubre de 2020, he descubierto que la solución que se explica en los párrafo siguientes en color verde, ha dejado de ser efectiva. Porque aunque se trate de instalar la versión 2 de EasyAdmin, recibirás mensajes de error de composer de un conflicto con la versión de Doctrine. Además, desde que el libro salió, ya está disponible la versión 5.1 de Symfony y pronta a salir la versión 5.2, ¿por que seguir trabajando con la versión 5.0 que, en apariencia, es la única compatible con EasyAdmin 2?. Entonces, según mi opinión, no queda otra solución que usar EasyAdmin versión 3, con lo que todo lo que está explicado en el libro «Symfony 5: La Vía Rápida», en el Paso 9 deja de funcionar. Trataré a la brevedad, de hacer una nueva entrada en este blog, para ver como instalar, y sobre todo configurar, EasyAdmin 3 en el contexto del proyecto Guestbook desarrollado en el libro.
Al día de hoy (31 de Julio de 2020) la forma correcta de proceder, para evitar confusiones al instalar el bundle EasyAdmin, si queremos seguir el desarrollo del ejemplo del libro, es ejecutar el siguiente comando:
composer require easycorp/easyadmin-bundle:2.*
O según la versión digital del libro que se encuentra en este link: https://symfony.com/doc/current/the-fast-track/es/9-backend.html
symfony composer req "admin:^2.0"
El mérito de esta solución es de un usuario del sitio Stack Overflow, que se identifica como:
Además de su respuesta, es interesante leer toda la entrada, porque también hay otro usuario que propone una solución alternativa, si quieres usar la versión 3 de EasyAdmin en el contexto del libro de Potencier. La entrada completa se encuentra aquí:
https://stackoverflow.com/questions/62485384/symfony-5-easyadmin-3-0-admin-route-not-found
Esto soluciona el problema, pero deberás hacer un trabajo adicional, ya que con el comando anterior que usa composer, no se crean de modo automático los archivos siguientes, que tendrás que agregarlo manualmente:
config/packages/easy_admin.yaml
config/routes/easy_admin.yaml
Más todos los otros cambios que propone el libro en este capítulo.
Si ya tenías instalada la versión 3 de EasyAdmin, deberás desinstalarla primero:
composer remove admin