WSUrl
WSUrl разбирает переданный URL и предоставляет доступ к его частям: схеме, хосту, пути, query-строке, query-параметрам и сегментам пути.Поддерживает
- получение хоста;
- получение схемы URL;
- получение полного хоста со схемой;
- получение сформированного URL;
- получение пути URL;
- получение URL без query-строки;
- получение query-строки;
- получение query-параметра по ключу;
- получение части пути по индексу;
- получение типа записи из пути;
- получение последнего сегмента пути.
Быстрый старт
$url = new WSUrl('https://example.com/blog/post-name?foo=bar');
$host = $url->host();
$scheme = $url->scheme();
$path = $url->path();
$parameter = $url->getParameter('foo');Инициализация
__construct($url)
Создаёт объект WSUrl на основе переданного URL.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$url |
mixed | URL, который передаётся в urldecode() и разбирается через parse_url(). |
Пример:
$url = new WSUrl('https://example.com/catalog/item?sort=asc');Передавайте абсолютный URL со схемой, хостом и путём. Неполный или некорректный URL может вызвать предупреждение или ошибку PHP.
Публичные методы
host()
Возвращает хост URL.
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Хост URL. |
Пример:
$host = $url->host();scheme()
Возвращает схему URL.
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Схема URL. |
Пример:
$scheme = $url->scheme();fullHost()
Возвращает полный хост со схемой.
Возвращает:
| Тип | Описание |
|---|---|
| string | Строка вида scheme://host. |
Пример:
$fullHost = $url->fullHost();url()
Возвращает URL, сформированный классом.
Возвращает:
| Тип | Описание |
|---|---|
| string | URL со схемой, хостом, путём и query-строкой. |
Пример:
$currentUrl = $url->url();path()
Возвращает путь URL.
Возвращает:
| Тип | Описание |
|---|---|
| string | Путь URL без начального и конечного символа /. |
Пример:
$path = $url->path();fullPath()
Возвращает URL без query-строки.
Возвращает:
| Тип | Описание |
|---|---|
| string | URL без query-параметров. |
Пример:
$fullPath = $url->fullPath();query()
Возвращает query-строку URL.
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Query-строка URL. |
Пример:
$query = $url->query();getParameter($key)
Возвращает query-параметр по ключу после обработки через Convert::noHTML().
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$key |
mixed | Ключ query-параметра. |
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Значение параметра. |
| null | Если параметр отсутствует. |
Пример:
$page = $url->getParameter('page');getPathPart($key)
Возвращает часть пути по индексу.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$key |
mixed | Индекс части пути. |
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Сегмент пути. |
| null | Если индекс отсутствует. |
Пример:
$section = $url->getPathPart(0);getOriginalParameter($key)
Возвращает исходное значение query-параметра без дополнительной обработки.
Перед вызовом убедитесь, что параметр существует. Для отсутствующего ключа метод обращается к неопределённому элементу массива.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
$key |
mixed | Ключ query-параметра. |
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Исходное значение параметра. |
Пример:
$value = $url->getOriginalParameter('page');getPostType()
Возвращает путь без последнего сегмента. Значение формируется только для пути, содержащего не менее двух сегментов.
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Тип записи, сформированный из пути. |
Пример:
$postType = $url->getPostType();getPageUrl()
Возвращает последний сегмент пути. Значение формируется только для пути, содержащего не менее двух сегментов.
Возвращает:
| Тип | Описание |
|---|---|
| mixed | Последний сегмент пути. |
Пример:
$pageUrl = $url->getPageUrl();getBaseUrl()
Возвращает путь URL.
Возвращает:
| Тип | Описание |
|---|---|
| string | Значение пути URL. |
Пример:
$baseUrl = $url->getBaseUrl();Форматы данных
Query-параметры
Query-строка разбирается по символу &, затем каждый элемент разбирается по символу =.
Пример:
?page=10&sort=ascПосле разбора:
| Ключ | Значение |
|---|---|
| page | 10 |
| sort | asc |
Части пути
Путь разбивается по символу /.
Пример:
blog/news/my-postПосле разбора:
| Индекс | Значение |
|---|---|
| 0 | blog |
| 1 | news |
| 2 | my-post |
Исключения
Класс не выбрасывает собственных исключений.
Ограничения и замечания
- путь URL приводится к нижнему регистру;
- query-параметры разбираются простым разделением по символам
&и=; - метод
getParameter()используетConvert::noHTML(); - метод
getOriginalParameter()возвращает значение без обработки; - private-методы класса не относятся к публичному API.