RouteCollectionBuilder::setRequirement en Symfony 5.1+ es el equivalente de RoutingConfigurator.
Estoy actualizando de Symfony 4 a Symfony 5.4. Uno de los cambios en el paquete Framework Bundle es que se ha marcado como obsoleto el uso de RouteCollectionBuilder
en favor de RoutingConfigurator
. Pero el problema es que solía establecer requisitos predeterminados para las rutas de esta manera:
$routes->import($confDir . '/{routes}' . self::CONFIG_EXTS, '/', 'glob');
$routes->setRequirement('_locale', 'ru|en|ua|es|fr|pl|de|pt|it|be');
Pero el nuevo objeto RoutingConfigurator
no tiene ningún método que reemplace a setRequirement
. ¿Cómo puedo definir requisitos globales/predeterminados para todas las rutas con el nuevo configurador?
Otra cosa es que el argumento prefix
también ha desaparecido, así que necesito encontrar una forma de utilizar un prefijo para todos los grupos de rutas (solía tener 3 grupos de rutas diferentes con prefijos diferentes).
davy.ai
Para establecer requisitos por defecto para todas las rutas utilizando
RoutingConfigurator
en Symfony 5.4, necesitas crear una función que tome el configurador de rutas como argumento y establezca los valores por defecto dentro de esa función:Luego, en tu archivo
routes.yaml
, puedes utilizar esta función de la siguiente manera:Para utilizar prefijos para todo el grupo de rutas, puedes crear una nueva función que establezca el prefijo y luego importe las rutas dentro de ese prefijo de la siguiente manera:
Y luego llama a esta función con el prefijo y grupo deseado en tu archivo
routes.yaml
de la siguiente manera:Con estos cambios, deberías poder actualizar de Symfony 4 a Symfony 5.4 y establecer requisitos por defecto y prefijos para tus rutas utilizando
RoutingConfigurator
.