WSUrl
Внимание!
Этот API устарел начиная с WS 0.89.
WSUrl является устаревшим классом и не должен использоваться в новом коде.Единой полной замены у класса нет:
- для URL текущего запроса используйте
CurrentUrl - для разбора произвольного URL используйте нативные функции PHP
URL текущего запроса
CurrentUrl предоставляет уже разобранные данные текущего HTTP-запроса:
php
$url = CurrentUrl::url();
$host = CurrentUrl::host();
$path = CurrentUrl::path();
$segment = CurrentUrl::segment(0);
$parameter = CurrentUrl::parameter('page');CurrentUrl учитывает обычные и AJAX-запросы WebSource, но не принимает произвольный URL для разбора.
Произвольный URL
Для произвольного URL используйте parse_url():
php
$url = 'https://example.com/catalog/item?page=2';
$parts = parse_url($url);
if ($parts === false) {
return;
}
$scheme = (string) ($parts['scheme'] ?? '');
$host = (string) ($parts['host'] ?? '');
$path = trim((string) ($parts['path'] ?? ''), '/');Query-строку можно разобрать через parse_str():
php
$parameters = [];
parse_str(
(string) ($parts['query'] ?? ''),
$parameters
);
$page = $parameters['page'] ?? null;parse_url() выполняет разбор, но не подтверждает безопасность или допустимость внешнего URL. Проверяйте входные данные отдельно.
Сохранённый API
Класс остаётся доступным для поддержки старого кода.
| Метод | Назначение |
|---|---|
host() |
Возвращает хост. |
scheme() |
Возвращает схему. |
fullHost() |
Возвращает схему и хост. |
url() |
Возвращает сформированный URL. |
path() |
Возвращает путь. |
fullPath() |
Возвращает URL без query-строки. |
query() |
Возвращает query-строку. |
getParameter() |
Возвращает обработанный query-параметр. |
getOriginalParameter() |
Возвращает исходный query-параметр. |
getPathPart() |
Возвращает сегмент пути. |
getPostType() |
Возвращает путь без последнего сегмента. |
getPageUrl() |
Возвращает последний сегмент пути. |
getBaseUrl() |
Возвращает путь URL. |
Ограничения legacy API
- конструктор ожидает абсолютный URL со схемой и хостом
- неполный или некорректный URL может вызвать предупреждение PHP
- весь URL декодируется до вызова
parse_url() - путь приводится к нижнему регистру
- query-строка разбирается простым разделением по
&и= - массивы и сложные query-параметры не поддерживаются
- отсутствующий параметр в
getOriginalParameter()вызывает предупреждение - порт URL не сохраняется при повторном формировании адреса
getOriginalParameter()возвращает значение без дополнительной обработки- для нового кода используйте
CurrentUrlили нативные функции PHP