PHP SDK: Ссылки и параметры URL
Методы доступны через $ctx->url(). Они работают со строками адресов. Полученный адрес нужно отдельно передать HTTP-клиенту или браузеру.
Методы
absolutize
absolutize(string $base, string $relative): string
Достроить относительную ссылку по известному адресу страницы.
$url = $ctx->url()->absolutize('https://shop.example.invalid/catalog/', '../product/1');
Результат и особенности. Возвращает https://shop.example.invalid/product/1. Для ссылок из HTML удобнее Node::abs().
param
param(string $url, string $name): ?string
Прочитать строковый query-параметр адреса.
$page = $ctx->url()->param('https://shop.example.invalid/?page=3', 'page');
Результат и особенности. Возвращает строку «3» или null. Массивные query-параметры не возвращаются.
withParam
withParam(string $url, string $name, string|int $value): string
Добавить или заменить один query-параметр.
$url = $ctx->url()->withParam('https://shop.example.invalid/catalog?sort=price', 'page', 2);
Результат и особенности. Возвращает URL с sort=price&page=2. Используйте полный URL. Фрагмент после # текущая реализация не сохраняет.
page
page(string $template, int $page): string
Подставить номер вместо {page} в шаблоне.
$url = $ctx->url()->page('https://shop.example.invalid/?PAGEN_1={page}', 4);
Результат и особенности. Возвращает адрес с PAGEN_1=4. Число страниц метод не определяет и запросов не выполняет.