Разница между параметром совпадения и RequestContext в маршрутизаторе Symfony UrlMatcher - PullRequest
0 голосов
/ 03 февраля 2019

Я не понимаю семантику API компонента маршрутизации Symfony.

Из первого примера кода на страница документации компонента маршрутизации :

$context = new RequestContext('/');

$matcher = new UrlMatcher($routes, $context);

$parameters = $matcher->match('/foo');

Почему имя хоста и метод HTTP передаются через $context, а путь через параметр к match()?Либо это?В конструкторе RequestContext также есть параметр path.

Создается впечатление, что match() должен вызываться несколько раз с разными путями в одном запросе, что я не могу себе представить, когда-либослучается.

1 Ответ

0 голосов
/ 04 февраля 2019

После интеграции компонента маршрутизации в мое приложение у меня есть догадка, почему это было сделано так.

Большинство свойств RequestContext - метод, тело запроса, получение параметров - могут использоваться безмодификации, но в зависимости от желаемой структуры пути и конфигурации сервера (правила перезаписи и т. д.) существует несколько способов предварительной обработки пути.

Это не объясняет, почему путь передается вmatch() Функция и объект запроса передаются в конструктор, но это объясняет, почему они передаются отдельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...