Маршрутизатор
класс Маршрутизатор реализует RouterInterface, RequestMatcherInterface
Класс Маршрутизатор является примером интеграции всех компонентов системы маршрутизации для удобства использования.
Свойства
| защищённый UrlMatcherInterface|null | $matcher | ||
| защищённый UrlGeneratorInterface|null | $generator | ||
| защищённый RequestContext | $context | ||
| защищённый LoaderInterface | $loader | ||
| защищённый RouteCollection|null | $collection | ||
| защищённый mixed | $resource | ||
| защищённый массив | $options | ||
| защищённый LoggerInterface|null | $logger |
Методы
| __construct(LoaderInterface $loader, mixed $resource, массив $options = массив(), RequestContext $context = null, LoggerInterface $logger = null) | ||
| setOptions(массив $options) Устанавливает параметры. | ||
| setOption(строка $key, mixed $value) Устанавливает параметр. | ||
| mixed | getOption(строка $key) Возвращает значение параметра. | |
| RouteCollection | getRouteCollection() Возвращает экземпляр RouteCollection, связанный с этим маршрутизатором. | |
| setContext(RequestContext $context) Устанавливает контекст запроса. | ||
| RequestContext | getContext() Возвращает контекст запроса. | |
| setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory) Устанавливает фабрику кэша конфигурации. | ||
| строка | generate(строка $name, mixed $parameters = массив(), целое число $referenceType = self::ABSOLUTE_PATH) Генерирует URL или путь для конкретного маршрута на основе заданных параметров. | |
| массив | match(строка $pathinfo) Пытается сопоставить URL-путь с набором маршрутов. | |
| массив | matchRequest(Request $request) Пытается сопоставить запрос с набором маршрутов. | |
| UrlMatcherInterface | getMatcher() Возвращает экземпляр UrlMatcher, связанный с этим маршрутизатором. | |
| UrlGeneratorInterface | getGenerator() Возвращает экземпляр UrlGenerator, связанный с этим маршрутизатором. | |
| addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) | ||
| GeneratorDumperInterface | getGeneratorDumperInstance() | |
| MatcherDumperInterface | getMatcherDumperInstance() |
Подробности
__construct(LoaderInterface $loader, mixed $resource, array $options = array(), RequestContext $context = null, LoggerInterface $logger = null)
Параметры
| LoaderInterface | $loader | Экземпляр LoaderInterface |
| mixed | $resource | Основной ресурс для загрузки |
| array | $options | Массив опций |
| RequestContext | $context | Контекст |
| LoggerInterface | $logger | Экземпляр логгера |
setOptions(array $options)
Устанавливает опции.
Доступные опции:
- cache_dir: Каталог кэша (или null для отключения кэширования)
- debug: Включить режим отладки (по умолчанию false)
- generator_class: Имя реализации UrlGeneratorInterface
- generator_base_class: Базовый класс для сгенерированного класса генератора
- generator_cache_class: Имя класса сгенерированного класса генератора
- generator_dumper_class: Имя реализации GeneratorDumperInterface
- matcher_class: Имя реализации UrlMatcherInterface
- matcher_base_class: Базовый класс для сгенерированного класса матчера
- matcher_dumper_class: Имя класса сгенерированного класса матчера
- matcher_cache_class: Имя реализации MatcherDumperInterface
- resource_type: Тип подсказки для основного ресурса (необязательно)
- strict_requirements: Настройка строгой проверки требований для генераторов, реализующих ConfigurableRequirementsInterface (по умолчанию true)
Параметры
| array | $options | Массив опций |
Исключения
| InvalidArgumentException | При указании неподдерживаемой опции |
setOption(string $key, mixed $value)
Устанавливает опцию.
Параметры
| string | $key | Ключ |
| mixed | $value | Значение |
Исключения
| InvalidArgumentException |
mixed getOption(string $key)
Получает значение опции.
Параметры
| string | $key | Ключ |
Возвращаемое значение
| mixed | Значение |
Исключения
| InvalidArgumentException |
RouteCollection getRouteCollection()
Получает экземпляр RouteCollection, связанный с этим роутером.
Возвращаемое значение
| RouteCollection | Экземпляр RouteCollection |
setContext(RequestContext $context)
Устанавливает контекст запроса.
Параметры
| RequestContext | $context |
RequestContext getContext()
Получает контекст запроса.
Возвращаемое значение
| RequestContext | Контекст |
setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory)
Устанавливает фабрику ConfigCache для использования.
Параметры
| ConfigCacheFactoryInterface | $configCacheFactory |
string generate(string $name, mixed $parameters = array(), int $referenceType = self::ABSOLUTE_PATH)
Генерирует URL или путь для определённого маршрута на основе заданных параметров.
Параметры, ссылающиеся на плейсхолдеры в шаблоне маршрута, будут заменять их в пути или хосте. Дополнительные параметры добавляются как строка запроса в URL.
Если заданный тип ссылки не может быть сгенерирован для маршрута, потому что он требует другого хоста или схемы, чем текущая, метод вернёт более полную ссылку, которая включает необходимые параметры. Например, если вы вызываете этот метод с $referenceType = ABSOLUTE_PATH, а маршрут требует схему https, а текущая схема – http, то он вместо этого вернёт ABSOLUTE_URL со схемой https и текущим хостом. Это гарантирует, что сгенерированный URL соответствует маршруту в любом случае.
Если маршрута с заданным именем не существует, генератор должен выбросить исключение RouteNotFoundException.
Специальный параметр _fragment будет использоваться как фрагмент документа, добавленный в конец конечного URL.
Параметры
| string | $name | Имя маршрута |
| mixed | $parameters | Массив параметров |
| int | $referenceType | Тип ссылки для генерации (одна из констант) |
Возвращаемое значение
| string | Сгенерированный URL |
Исключения
| RouteNotFoundException | Если указанный маршрут не существует |
| MissingMandatoryParametersException | Когда некоторые параметры отсутствуют, являясь обязательными для маршрута |
| InvalidParameterException | Когда значение параметра для плейсхолдера неверно, так как не соответствует требованиям |
array match(string $pathinfo)
Пытается сопоставить URL-путь с набором маршрутов.
Если матчер не может найти информацию, он должен выбросить одно из перечисленных ниже исключений.
Параметры
| string | $pathinfo | Информация о пути для обработки (в сыром формате, т.е. не URL-декодированный) |
Возвращаемое значение
| array | Массив параметров |
Исключения
| NoConfigurationException | Если конфигурация маршрутизации не найдена |
| ResourceNotFoundException | Если ресурс не найден |
| MethodNotAllowedException | Если ресурс найден, но метод запроса не разрешён |
array matchRequest(Request $request)
Пытается сопоставить запрос с набором маршрутов.
Если матчер не может найти информацию, он должен выбросить одно из перечисленных ниже исключений.
Параметры
| Request | $request |
Возвращаемое значение
| array | Массив параметров |
Исключения
| NoConfigurationException | Если конфигурация маршрутизации не найдена |
| ResourceNotFoundException | Если подходящий ресурс не найден |
| MethodNotAllowedException | Если подходящий ресурс найден, но метод запроса не разрешён |
UrlMatcherInterface getMatcher()
Получает экземпляр UrlMatcher, связанный с этим роутером.
Возвращаемое значение
| UrlMatcherInterface | Экземпляр UrlMatcherInterface |
UrlGeneratorInterface getGenerator()
Получает экземпляр UrlGenerator, связанный с этим роутером.
Возвращаемое значение
| UrlGeneratorInterface | Экземпляр UrlGeneratorInterface |
addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
Параметры
| ExpressionFunctionProviderInterface | $provider |
protected GeneratorDumperInterface getGeneratorDumperInstance()
Возвращаемое значение
| GeneratorDumperInterface |
protected MatcherDumperInterface getMatcherDumperInstance()
Возвращаемое значение
| MatcherDumperInterface |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Routing/Router.html