Download the PHP package artklen/ub without Composer
On this page you can find all versions of the php package artklen/ub. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package ub
UB — URL Builder
Пакет содержит один класс. Решаемая задача: собирать url со всегда одинаковым порядком параметров, в формате, идентичном результату отправки формы.
Сборка url происходит в момент приведения объекта к строке. После сборки объект можно переиспользовать, его состояние не ломается.
Класс подготовлен для наследования. Переопределение нескольких методов позволит генерировать ЧПУ прозрачно для остальной части проекта. Пример ЧПУ.
Создание
$path
— для относительного адреса это путь, для абсолютного — часть строки до знака?
.$fields
— порядок параметров при генерации URL. Параметры, которых нет в списке, попадают в конец строки.$values
— все параметры URL в формате [ключ => значение].
Все данные доступны для перезаписи через сеттеры.
Пример: сборка url из параметров.
Результат выполнения:
Пример: создание объекта для текущего запроса.
Пример: создание объекта из произвольного url.
Результат выполнения:
Если будет потребность, можно добавить в класс статическим методом.
Работа с данными
Все данные объекта доступны для чтения и записи через методы.
Можно изменять сам объект или создавать изменённую копию.
Методы, отвечающие за каждый из способов, отличаются характерными названиями и сигнатурами.
Копирующие методы возвращают копию (static
), не копирующие — не возвращают ничего (void
).
Названия копирующих методов начинаются с предлогов with
и without
, у не копирующих — начинаются с глагола.
Метод | Действие | Сигнатура |
---|---|---|
◀️ | ||
getPath |
Получить путь | getPath(): string |
getFields |
Получить список полей | getFields(): array |
hasValue |
Проверить, определено ли значение параметра | hasValue(string $name): bool |
getValue |
Получить значение параметра | getValue(string $name): mixed |
getFieldsValues |
Получить значения полей | getFieldsValues(): array |
getAllValues |
Получить значения всех параметров | getAllValues(): array |
▶️ | ||
setPath |
Изменить путь | setPath(string $path): void |
setValue |
Установить значение параметра | setValue(string $name, $value): void |
unsetValue |
Удалить значение параметра | unsetValue(string $name): void |
appendValue |
Добавить элемент к массиву значений параметра (аналог операции []= ) |
appendValue(string $name, $value): void |
↩️ | ||
withPath |
Изменить путь | withPath(string $path): static |
withFields |
Изменить список полей | withFields(array $fields): static |
with |
Установить значение параметра | with(string $name, $value): static |
without |
Удалить значение параметра | without(string $name): static |
withValues |
Установить значения всех параметров | withValues(array $values): static |
withoutValues |
Удалить значения заданного списка параметров | withoutValues(array $values): static |
withoutAllValues |
Удалить значения всех параметров | withoutAllValues(): static |
Имплементация ArrayAccess
и IteratorAggregate
работает по массиву параметров.
Порядок обхода итератора не определён. Если будет потребность, можно сделать обход по порядку
параметров в адресе.