phpsoftbox / filter
Reusable value filters for PhpSoftBox components
v1.0.0
2026-09-29 10:24 UTC
Requires
- php: ^8.5
- phpsoftbox/inflector: ^1.0
Requires (Dev)
- phpsoftbox/cs-fixer: ^1.2.2
- phpunit/phpunit: ^13.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-29 11:53:01 UTC
README
Независимый компонент для нормализации и преобразования значений.
Установка
composer require phpsoftbox/filter
Использование
Все фильтры являются вызываемыми объектами:
use PhpSoftBox\Filter\BooleanFilter; use PhpSoftBox\Filter\LowercaseFilter; use PhpSoftBox\Filter\TrimFilter; $value = new TrimFilter()(' value '); $value = new LowercaseFilter()($value); $debug = new BooleanFilter(default: false)('true');
FilterAdapter предоставляет типизированные преобразования и выполнение pipeline:
use PhpSoftBox\Filter\FilterAdapter; use PhpSoftBox\Filter\IntegerFilter; use PhpSoftBox\Filter\TrimFilter; $filters = new FilterAdapter(); $port = $filters->int('8080'); $value = $filters->apply(' 42 ', [new TrimFilter(), new IntegerFilter()]);
apply() принимает фильтр, Closure или список из них; callable-массивы и строки-функции не принимаются —
оборачивайте их в Closure ($obj->method(...)).
Компонент также содержит фильтры массивов, JSON, дат, строк и телефонных номеров. Важные правила:
IntegerFilterне усекает: дробное значение (1.9,'1.5') и значение вне диапазонаintдают default;SlugFilterтранслитерирует кириллицу так же, какInflector::urlize()('Привет мир'→'privet-mir');DateTimeFilterсчитает timestamp толькоint; числовую строку — сnumericStringAsTimestamp: true;PhoneFilterдля RU по умолчанию принимает только мобильные номера (mobileOnly: false— и городские). Подробные примеры доступны в docs/usage.md.
Breaking change
Фильтры перенесены из PhpSoftBox\Validator\Filter в PhpSoftBox\Filter. Старые namespace
не поддерживаются.
Лицензия
MIT