Routing complexe dans Symfony 2

Lors du développement du site de l’association Proxgroup, j’ai été confronté à un soucis d’envergure, il été nécessaire d’avoir une route qui attrapent toutes les urls car dans mon application, une page peut avoir /unepage mais aussi /undossier/unepage comme url, hors l’option path ne permet pas ce genre de chose facilement, après quelques recherches sur le net, j’ai trouvé l’option pattern qui permet cela :

proxgroup_site_page:
    pattern: /{_locale}/{slug}
    defaults: { _controller: ProxgroupSiteBundle:Site:page, _locale: 'fr' }
    requirements:
        _locale: %available_locale%
        slug: ".+"

Note surprenante : il est impossible de mettre une expression régulière hors des {tag}, pour contourner ce soucis, il faut créer un tag que l’on n’utilise pas mais qui me permet d’ajouter une expression régulière où l’on veux.

Si vous avez une meilleure solution, laissez un com’

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.