UrlGenerator
class UrlGenerator implements 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.
Специальный параметр _fragment будет использоваться как фрагмент документа, добавленный в окончательный URL.
Параметры
| 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.2/Symfony/Component/Routing/Generator/UrlGenerator.html