Генератор URL
класс UrlGenerator реализует UrlGeneratorInterface, ConfigurableRequirementsInterface
UrlGenerator может сгенерировать URL или путь для любого маршрута в RouteCollection на основе переданных параметров.
Методы
| __construct(RouteCollection $routes, RequestContext $context, LoggerInterface $logger = 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 или путь для определённого маршрута на основе заданных параметров. | |
| static string | getRelativePath(string $basePath, string $targetPath) Возвращает целевой путь как относительную ссылку от базового пути. |
Подробности
__construct(RouteCollection $routes, RequestContext $context, LoggerInterface $logger = null)
Конструктор.
Параметры
| RouteCollection | $routes | Экземпляр RouteCollection |
| RequestContext | $context | Контекст |
| LoggerInterface | $logger | Экземпляр логгера |
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 = ABSOLUTEPATH, но маршрут требует схемы https, а текущая схема http, он вместо этого вернёт ABSOLUTEURL со схемой https и текущим хостом. Это гарантирует, что сгенерированный URL соответствует маршруту в любом случае.
Если маршрута с заданным именем нет, генератор должен выбросить RouteNotFoundException.
Параметры
| string | $name | Имя маршрута |
| mixed | $parameters | Массив параметров |
| int | $referenceType | Тип ссылки для генерации (один из констант) |
Значение, возвращаемое функцией
| string | Сгенерированный URL |
Исключения
| RouteNotFoundException | Если именованный маршрут не существует |
| 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.
http://api.symfony.com/3.0/Symfony/Component/Routing/Generator/UrlGenerator.html