I have in my routing.yml specified the parameter _locale requirements in every single route and I think that must be something to simplify this situation.
routing.yml
ProjectBaseBundle_index:
pattern: /{_locale}
defaults: { _controller: ProjectBaseBundle:Default:index }
requirements:
_locale: en|es
ProjectBaseBundle_privacy:
pattern: /privacy/{_locale}
defaults: { _controller: ProjectBaseBundle:Default:privacy }
requirements:
_locale: en|es
.....
ProjectBaseBundle_legal:
pattern: /legal/{_locale}
defaults: { _controller: ProjectBaseBundle:Default:legal }
requirements:
_locale: en|es
I am using Symfony2.1 beta 3
Is possible to specify a global _locale requirements for all my routes?
I have discovered a way to do that:
Using a "master" routing to import the routing config. As my bundles usually have too much information, I have been separating the controllers, resources and routes in differents "modules". As result of that approach, I have discovered this:
Master routing.yml
ProjectBaseBundle_default:
resource: "@ProjectBaseBundle/Resources/config/routing-default.yml"
prefix: /{_locale}/project/
requirements:
_locale: en|es|de|fr
Child routing-default.yml
ProjectBaseBundle_default_privacy:
pattern: /privacy
defaults: { _controller: ProjectBaseBundle:Default:privacy }
ProjectBaseBundle_default_legal:
pattern: /legal
defaults: { _controller: ProjectBaseBundle:Default:legal }
ProjectBaseBundle_default_usage:
pattern: /usage
defaults: { _controller: ProjectBaseBundle:Default:usage }
With this routing config, I minimize the places where need to write the locale requirements.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With