phpsoftbox / collection
Collection component for the PhpSoftBox framework
v1.0.0
2026-09-29 10:23 UTC
Requires
- php: ^8.5
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:51:15 UTC
README
Строго типизированная коллекция для работы с массивами в стиле fluent API: выборка (only/except), трансформации (map/filter/reduce), dot-нотация для вложенных структур (getPath/setPath), сортировка, чанки, слияние.
Установка
composer require phpsoftbox/collection
QuickStart
use PhpSoftBox\Collection\Collection; $users = Collection::from([ ['id' => 1, 'name' => 'Alice', 'active' => true], ['id' => 2, 'name' => 'Bob', 'active' => false], ]); $names = $users ->filter(fn (array $u) => $u['active']) ->map(fn (array $u) => $u['name']) ->values() ->all(); // ['Alice'] $config = Collection::from([]) ->setPath('db.host', 'localhost') ->setPath('db.port', 3306) ->all(); // ['db' => ['host' => 'localhost', 'port' => 3306]]
Соглашения
- Селекторы
$by/$key(unique,duplicates,indexBy,sortBy,sum,avg,median,percentile,percentage,min,max,ArrayHelper::keyBy/partition): строка — всегда путь к полю, вычисление — толькоClosure.sum('count')суммирует полеcount, а не вызывает функциюcount(). map(),filter()иwhere*()сохраняют ключи; для списка 0..N вызывайтеvalues().get($key, $default)возвращает$defaultтолько при отсутствии ключа; сохранённыйnullостаётсяnull.dot()сохраняет пустые массивы как значения.
Документация
Справочник по всем методам: docs/index.md
Лицензия
MIT