Маршрутизатор
класс Router реализует RouterInterface, RequestMatcherInterface
Класс Router — это пример интеграции всех частей системы маршрутизации для более удобного использования.
Методы
| __construct(LoaderInterface $loader, mixed $resource, array $options = array(), RequestContext $context = null, LoggerInterface $logger = null) Конструктор. | ||
| setOptions(array $options) Устанавливает опции. | ||
| setOption(string $key, mixed $value) Устанавливает опцию. | ||
| mixed | getOption(string $key) Получает значение опции. | |
| RouteCollection | getRouteCollection() Получает экземпляр RouteCollection, связанный с этим маршрутизатором. | |
| setContext(RequestContext $context) Устанавливает контекст запроса. | ||
| RequestContext | getContext() Получает контекст запроса. | |
| setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory) Устанавливает фабрику ConfigCache для использования. | ||
| string | generate(string $name, mixed $parameters = array(), int $referenceType = self::ABSOLUTE_PATH) Генерирует URL или путь для определенного маршрута на основе заданных параметров. | |
| array | match(string $pathinfo) Пытается сопоставить URL-путь с набором маршрутов. | |
| array | matchRequest(Request $request) Пытается сопоставить запрос с набором маршрутов. | |
| UrlMatcherInterface | getMatcher() Получает экземпляр UrlMatcher, связанный с этим маршрутизатором. | |
| UrlGeneratorInterface | getGenerator() Получает экземпляр UrlGenerator, связанный с этим маршрутизатором. | |
| addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) |
Подробности
__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
- generatorbaseclass: Базовый класс для сгенерированного класса генератора
- generatorcacheclass: Имя класса для сгенерированного класса генератора
- generatordumperclass: Имя реализации GeneratorDumperInterface
- matcher_class: Имя реализации UrlMatcherInterface
- matcherbaseclass: Базовый класс для сгенерированного класса матчера
- matcherdumperclass: Имя реализации 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 = ABSOLUTEPATH, но маршрут требует схемы https, а текущая схема - http, он вместо этого вернёт ABSOLUTEURL со схемой https и текущим хостом. Это гарантирует, что сгенерированный URL соответствует маршруту в любом случае.
Если маршрута с данным именем не существует, генератор должен бросить исключение RouteNotFoundException.
Параметры
| string | $name | Имя маршрута |
| mixed | $parameters | Массив параметров |
| int | $referenceType | Тип ссылки, который должен быть сгенерирован (одно из констант) |
Возвращаемое значение
| string | Сгенерированный URL |
Исключения
| RouteNotFoundException | Если указанный маршрут не найден |
| MissingMandatoryParametersException | Если некоторые обязательные параметры отсутствуют для маршрута |
| InvalidParameterException | Если значение параметра для заполнителя не соответствует требованиям |
array match(string $pathinfo)
Попытка сопоставить URL-путь с набором маршрутов.
Если матчер не может найти информацию, он должен бросить одно из исключений, описанных ниже.
Параметры
| string | $pathinfo | Путь, подлежащий разбору (в сыром формате, т.е. не декодированный с помощью urldecode) |
Возвращаемое значение
| array | Массив параметров |
Исключения
| ResourceNotFoundException | Если ресурс не был найден |
| MethodNotAllowedException | Если ресурс был найден, но метод запроса запрещён |
array matchRequest(Request $request)
Попытка сопоставить запрос с набором маршрутов.
Если матчер не может найти информацию, он должен бросить одно из исключений, описанных ниже.
Параметры
| Request | $request | Запрос для сопоставления |
Возвращаемое значение
| array | Массив параметров |
Исключения
| ResourceNotFoundException | Если не удалось найти соответствующий ресурс |
| MethodNotAllowedException | Если соответствующий ресурс был найден, но метод запроса не разрешён |
UrlMatcherInterface getMatcher()
Получает экземпляр UrlMatcher, связанный с этим маршрутизатором.
Возвращаемое значение
| UrlMatcherInterface | Экземпляр UrlMatcherInterface |
UrlGeneratorInterface getGenerator()
Получает экземпляр UrlGenerator, связанный с этим маршрутизатором.
Возвращаемое значение
| UrlGeneratorInterface | Экземпляр UrlGeneratorInterface |
addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider)
Параметры
| ExpressionFunctionProviderInterface | $provider |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.1/Symfony/Component/Routing/Router.html