Symfony2 Route global {_locale} requirements

routes, symfony-2.1, yaml

Solution

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.

Problem

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?

Original source