UrlGenerator
class UrlGenerator implements UrlGeneratorInterface, ConfigurableRequirementsInterface
UrlGenerator может сгенерировать URL или путь для любого маршрута в RouteCollection на основе переданных параметров.
Свойства
| protected | $routes | ||
| protected | $context | ||
| protected bool|null | $strictRequirements | ||
| protected | $logger | ||
| protected | $decodedChars | Этот массив определяет символы (кроме буквенно-цифровых), которые не будут кодироваться в процентах в сегменте пути сгенерированного URL-адреса. |
Методы
| __construct(RouteCollection $routes, RequestContext $context, LoggerInterface $logger = null, string $defaultLocale = null) | ||
| setContext(RequestContext $context) Устанавливает контекст запроса. | ||
| RequestContext | getContext() Получает контекст запроса. | |
| setStrictRequirements(bool|null $enabled) Включает или отключает исключение при неправильных параметрах. | ||
| bool|null | isStrictRequirements() Возвращает, нужно ли выбрасывать исключение при неправильных параметрах. | |
| string | generate(string $name, mixed $parameters = array(), int $referenceType = self::ABSOLUTE_PATH) Генерирует URL или путь для конкретного маршрута на основе заданных параметров. | |
| doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array()) | ||
| static string | getRelativePath(string $basePath, string $targetPath) Возвращает целевой путь в качестве относительной ссылки от базового пути. |
Детали
__construct(RouteCollection $routes, RequestContext $context, LoggerInterface $logger = null, string $defaultLocale = null)
Параметры
| RouteCollection | $routes | |
| RequestContext | $context | |
| LoggerInterface | $logger | |
| string | $defaultLocale |
setContext(RequestContext $context)
Устанавливает контекст запроса.
Параметры
| RequestContext | $context |
RequestContext getContext()
Получает контекст запроса.
Возвращаемое значение
| RequestContext | Контекст |
setStrictRequirements(bool|null $enabled)
Включает или отключает исключение при неправильных параметрах.
Передача null полностью деактивирует проверку требований.
Параметры
| bool|null | $enabled |
bool|null isStrictRequirements()
Возвращает, нужно ли выбрасывать исключение при неправильных параметрах.
Null означает, что проверка требований полностью деактивирована.
Возвращаемое значение
| bool|null |
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 | Если значение параметра для заполнителя не соответствует требованиям |
protected doGenerate($variables, $defaults, $requirements, $tokens, $parameters, $name, $referenceType, $hostTokens, array $requiredSchemes = array())
Параметры
| $variables | ||
| $defaults | ||
| $requirements | ||
| $tokens | ||
| $parameters | ||
| $name | ||
| $referenceType | ||
| $hostTokens | ||
| array | $requiredSchemes |
Исключения
| MissingMandatoryParametersException | Если отсутствуют обязательные параметры для маршрута |
| InvalidParameterException | Если значение параметра для заполнителя не соответствует требованиям |
static string getRelativePath(string $basePath, string $targetPath)
Возвращает целевой путь в качестве относительной ссылки от базового пути.
Только компонент пути URI (без схемы, хоста и т. д.) имеет значение и должен быть задан, начиная с косой черты. Оба пути должны быть абсолютными и не содержать относительных частей. Относительные URL-адреса от одного ресурса к другому полезны при генерации автономных загружаемых архивов документов. Кроме того, их можно использовать для уменьшения размера ссылок в документах.
Примеры целевых путей, при заданном базовом пути «/a/b/c/d»: - «/a/b/c/d» -> «» - «/a/b/c/» -> «./» - «/a/b/» -> «../» - «/a/b/c/other» -> «other» - «/a/x/y» -> «../../x/y»
Параметры
| string | $basePath | Базовый путь |
| string | $targetPath | Целевой путь |
Возвращаемое значение
| string | Относительный целевой путь |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Routing/Generator/UrlGenerator.html