Новое в Symfony 4.3: Улучшения маршрутизации

Булевы параметры контейнера в маршрутах

В приложениях Symfony можно использовать параметры контейнера в конфигурации маршрутов. В Symfony 4.3 улучшили эту функцию, чтобы также поддерживать логические параметры, поэтому вы можете делать такие вещи:

/**
* @Route("/test", condition="%kernel.debug%")
*/
class TestController extends AbstractController
{
    // ...
}

Устаревшие некоторые параметры маршрутизатора

Следующие параметры конфигурации компонента маршрутизации устарели, и они будут удалены в Symfony 5.0:

  • generator_base_class
  • generator_cache_class
  • matcher_base_class
  • matcher_cache_class

Эти классы больше не используются после некоторых недавних изменений в коде маршрутизации. Кроме того, использование параметров для определения используемого класса – это практика, которую Symfony не поощрял несколько лет назад.

Отображены условия маршрута при отладке

Команда debug:router помогает вам отладить проблемы маршрутизации, перечисляя все доступные маршруты и отображая все детали для данного маршрута. В Symfony 4.3 улучшили эту команду, чтобы также отображать состояние маршрута (если оно определено):

 php bin/console debug:router some_route_name

+--------------+-------------------------------------------------------------------+
| Property     | Value                                                             |
+--------------+-------------------------------------------------------------------+
| Route Name   |                                                                   |
| Path         | /name/add                                                         |
| Host         | localhost                                                         |
| Scheme       | http|https                                                        |
| Method       | PUT|POST                                                          |
| ...                                                                              |
| Condition    | context.getMethod() in ['GET', 'HEAD', 'POST']                    |
+--------------+-------------------------------------------------------------------+