1.6 Маршрутизация

Указание маршрутов в YAML

Настройки маршрутизации указываются в файле /app/config/routing.yml. Пример роутинга для блога:

article_show:
    path: /articles/{lang}/{year}/{title}.{_format}
    defaults: { _controller: AcmeBundle:Article:show, _format: html }
    methods:  [GET]
    requirements:
        lang: en|fr|ru
        _format: html|rss
        _locale: ru
        year: \d+

Подключение внешнего файла роутинга с добавлением префикса:

acme_hello:
    prefix: /admin
    resource: "@AcmeBundle/Resources/config/routing.yml"

Указание маршрута в PHP аннотациях

Также имеется возможность указывать маршруты в аннотациях к контроллерам:

/**
 * @Route("/hello/{name}", name="hello")
 */
public function indexAction($name)
{
    return new Response('<html><body>Hello '.$name.'!</body></html>');
}
`

Просмотр и отладки маршрутов в консоли

  • Просмотр всех маршрутов приложения:

php bin/console debug:router

  • Просмотр информации о маршруте по его названию:

php bin/console debug:router homepage

  • Определение маршрута по URL:

php bin/console router:match /blog/my-latest-post