Маршрутизатор
класс Router расширяет Router и реализует WarmableInterface, ServiceSubscriberInterface
Этот маршрутизатор создаёт загрузчик только тогда, когда кэш пуст.
Методы
| __construct(ContainerInterface $container, mixed $resource, array $options = array(), RequestContext $context = null) | ||
| setOptions(array $options) Устанавливает параметры. | из Router | |
| setOption(string $key, mixed $value) Устанавливает параметр. | из Router | |
| смешанный | getOption(string $key) Получает значение параметра. | из Router |
| RouteCollection | getRouteCollection() Получает экземпляр RouteCollection, связанный с этим маршрутизатором. | |
| setContext(RequestContext $context) Устанавливает контекст запроса. | из Router | |
| RequestContext | getContext() Получает контекст запроса. | из Router |
| setConfigCacheFactory(ConfigCacheFactoryInterface $configCacheFactory) Устанавливает фабрику ConfigCache для использования. | из Router | |
| строка | generate(string $name, mixed $parameters = array(), int $referenceType = self::ABSOLUTE_PATH) Генерирует URL или путь для определённого маршрута на основе заданных параметров. | из Router |
| массив | match(string $pathinfo) Пытается сопоставить путь URL с набором маршрутов. | из Router |
| массив | matchRequest(Request $request) Пытается сопоставить запрос с набором маршрутов. | из Router |
| UrlMatcherInterface | getMatcher() Получает экземпляр UrlMatcher, связанный с этим маршрутизатором. | из Router |
| UrlGeneratorInterface | getGenerator() Получает экземпляр UrlGenerator, связанный с этим маршрутизатором. | из Router |
| addExpressionLanguageProvider(ExpressionFunctionProviderInterface $provider) | из Router | |
| warmUp(string $cacheDir) Прогревает кэш. | ||
| статический массив | getSubscribedServices() Возвращает массив типов сервисов, необходимых для таких экземпляров, необязательно индексированных по именам сервисов, используемых внутри. |
Детали
__construct(ContainerInterface $container, mixed $resource, array $options = array(), RequestContext $context = null)
Параметры
| ContainerInterface | $container | Экземпляр ContainerInterface |
| mixed | $resource | Основной ресурс для загрузки |
| array | $options | Массив параметров |
| RequestContext | $context | Контекст |
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.
Специальный параметр _fragment будет использоваться в качестве фрагмента документа, прикрепленного к итоговому URL.
Параметры
| string | $name | Имя маршрута |
| mixed | $parameters | Массив параметров |
| int | $referenceType | Тип ссылки для генерации (одна из констант) |
Возвращаемое значение
| string | Сгенерированный URL |
Исключения
| RouteNotFoundException | Если заданный маршрут не существует |
| MissingMandatoryParametersException | Когда отсутствуют некоторые обязательные параметры для маршрута |
| InvalidParameterException | Когда значение параметра для заполнителя некорректно, так как не соответствует требованиям |
array match(string $pathinfo)
Попытка сопоставить URL-путь с набором маршрутов.
Если матчер не может найти информацию, он должен выбросить одно из исключений, описанных ниже.
Параметры
| string | $pathinfo | Путь для обработки (в сыром формате, т.е. не urldecoded) |
Возвращаемое значение
| 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 |
warmUp(string $cacheDir)
Запускает кеширование.
Параметры
| string | $cacheDir | Директория кеша |
static array getSubscribedServices()
Возвращает массив типов сервисов, необходимых для таких экземпляров, необязательно с ключами, соответствующими внутренним именам сервисов.
Для обязательных зависимостей:
- array('logger' => 'Psr\Log\LoggerInterface') означает, что объекты используют внутреннее имя "logger" для получения сервиса, который должен реализовывать Psr\Log\LoggerInterface.
- array('Psr\Log\LoggerInterface') — сокращение для
- array('Psr\Log\LoggerInterface' => 'Psr\Log\LoggerInterface')
в противном случае:
- array('logger' => '?Psr\Log\LoggerInterface') обозначает необязательную зависимость
- array('?Psr\Log\LoggerInterface') — сокращение для
- array('Psr\Log\LoggerInterface' => '?Psr\Log\LoggerInterface')
Значение возврата
| array | Требуемые типы сервисов, необязательно с ключами, соответствующими именам сервисов |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.4/Symfony/Bundle/FrameworkBundle/Routing/Router.html