Маршрутизатор
класс 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, связанный с этим Router. | |
| 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, связанный с этим Router. | |
| UrlGeneratorInterface | getGenerator() Получает экземпляр UrlGenerator, связанный с этим Router. | |
| 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
- generator_base_class: Базовый класс для сгенерированного класса генератора
- generator_cache_class: Имя класса для сгенерированного класса генератора
- generator_dumper_class: Имя реализации GeneratorDumperInterface
- matcher_class: Имя реализации UrlMatcherInterface
- matcher_base_class: Базовый класс для сгенерированного класса матчера
- matcher_dumper_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.
Параметры
| string | $name | Имя маршрута |
| mixed | $parameters | Массив параметров |
| int | $referenceType | Тип ссылки для генерации (одна из констант) |
Возвращаемое значение
| string | Сгенерированный URL |
Исключения
| RouteNotFoundException | Если заданного маршрута не существует |
| MissingMandatoryParametersException | Если отсутствуют некоторые обязательные параметры для маршрута |
| InvalidParameterException | Если значение параметра для плейсхолдера некорректно, поскольку не соответствует требованиям |
array match(string $pathinfo)
Пытается сопоставить путь URL с набором маршрутов.
Если матчер не может найти информацию, он должен выбросить одно из исключений, описанных ниже.
Параметры
| string | $pathinfo | Путь для анализа (в сыром формате, т.е. не декодированном URL) |
Возвращаемое значение
| 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.2/Symfony/Component/Routing/Router.html