Symfony2 routing

A symfony2-ben a routing(útvonalválasztás) több fájlban valósul meg. A kezdő routing fájl app\config\routing.yml -ban található meg. Itt sorolhatjuk fel a bundle-jainkat. Minden bundle-nek külön routing fájlja lesz. Ezek elérési útját is ebben a fájlban adjuk meg(bundle generáláskor beleírja a rendszer ebbe a fájlba magától).

Példa:
 
web_news:
    resource: "@WebNewsBundle/Resources/config/routing.yml"
    prefix:   /
A bundle-k routing fájljai itt érhetőek el: src\Web\NewsBundle\Resources\config\routing.yml Ebben a fájlban lesznek majd előre generált elérési utak, de nekünk majd ide kell felvenni és megparaméterezni tetszésünk szerint.

Példa:
 
news:
    path:     /news/{page}
    defaults: { _controller: WebNewsBundle:News:index, page:0 }
    requirements:
        page:  \d*
        _method:  GET

Nem kötelező ennyire bonyolultan paraméterezni. A {page} az url-ben a második paramétert jelzi, ami jelen esetben az oldal számot fogja takarni. A requirements részben látszik, hogy \d* miatt számot fog várni paramtérként és nem betű karaktereket. Get metódussal fog működni és, a page:0 jelenti a default 0 értéket, ha nem írnánk be az url-be semmilyen oldalszámot.

A news route-hoz tartozó controllerben levő metódus:
 
    /**
     * @Route("/{page}", name="news")
     * @Method("GET")
     */
    public function indexAction($page){
     ...

A routing fájlokat nem csak yml, hanem xml és php stílusban is lehet írni. A yml-nél fontos, hogy nem lehet tab-ot írni a fájlba és kötött a forma.

Olvasnivaló:
http://symfony.com/doc/current/book/routing.html
http://symfony.com/legacy/doc/jobeet/1_4/en/05?orm=Doctrine
2014.11.28.