Download the PHP package karelwintersky/arris.request without Composer
On this page you can find all versions of the php package karelwintersky/arris.request. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download karelwintersky/arris.request
More information about karelwintersky/arris.request
Files in karelwintersky/arris.request
Package arris.request
Short Description Arris µFramework: Fluent request data reader
License MIT
Informations about the package arris.request
Arris.Request
Fluent-reader данных запроса (REQUEST) для экосистемы Arris µFramework. Включает:
- класс
Arris\Request— чтение поля из источника с чейнингом преобразований и приведением типов; - класс
Arris\Request\Dataset— маппинг массива по правилам с приведением типов.
Standalone-пакет.
Requirements
- PHP 8.2+
- ext-mbstring
Installation
Usage
Минимальная форма
Источником данных по умолчанию является $_REQUEST. Вторым аргументом можно
передать произвольный массив (например, протестировать обработчик формы):
import() — «пульт» для __invoke
Request::import($source = null) связывает источник (по умолчанию $_REQUEST) без
конкретного поля и возвращает source-reader: его raw(), asArray() и asJson()
отдают весь источник целиком. Каждый вызов $r('field') создаёт обычный читатель
поля из того же источника:
Внимание: вызывать класс как функцию (Request('name')) нельзя — __invoke
работает только на экземпляре.
Чейнинг преобразований
Step-методы возвращают $this и комбинируются в любом порядке.
apply() принимает любой callable: замыкание, строку-функцию ('strtolower'), массив [Class::class, 'method'] и т.д.
Встроенные шорткаты для частых преобразований:
Замыкающие методы (возвращают значение)
| Метод | Тип | Поведение |
|---|---|---|
raw() |
mixed |
сырое значение без преобразований; для import() — весь источник |
asString() / asStr() |
string |
строковое приведение |
asInt() |
int |
FILTER_VALIDATE_INT, иначе дефолт |
asFloat() |
float |
FILTER_VALIDATE_FLOAT, иначе дефолт |
asBool() |
bool |
true/1/on/yes → true; false/0/off/no/'' → false |
asCheckbox() |
int |
asBool() ? 1 : 0 — для INT-колонки БД |
asArray() |
array |
как есть, иначе (array)$default; пустой [] → default (если не allowEmptyArray()); для import() — весь источник |
asEmail() |
string |
валидация FILTER_VALIDATE_EMAIL, иначе default |
asUrl() |
string |
валидация FILTER_VALIDATE_URL, иначе default |
asText() |
string |
очистка текста: strip_tags + htmlspecialchars, удаление пустых <div>/<p>, схлопывание пробелов |
asJson() |
string |
JSON результата (Dataset::jsonize): весь источник для import() |
Примеры:
Dataset — маппинг payload по правилам
Arris\Request\Dataset::map() строит новый массив из исходного по набору правил
с приведением типов. Правило — ассоциативный массив с ключами:
source— поле исходного массива (по умолчанию — ключ правила);target— поле результата (по умолчанию — ключ правила);default— значение, если поле отсутствует в источнике;processor— фиксированное значение ИЛИ callablefn($value, $source);type— приведение типа:'int','float','bool','string','array'.
В результат попадают только ключи правил. Falsy-значения (0, '', false,
null) не считаются отсутствующими.
Есть также Dataset::castToType($value, $type) и Dataset::jsonize($data, $flags).
Testing
License
The MIT License (MIT).
All versions of arris.request with dependencies
ext-mbstring Version *