vakata/collection

PHP collection manipulation class - supports iterators and generators

1.8.4 2024-08-06 12:30 UTC

This package is auto-updated.

Last update: 2024-11-06 13:05:39 UTC


README

Latest Version on Packagist Software License Build Status Scrutinizer Code Quality Code Coverage

A PHP class for fast iterables manipulation (arrays, generators, iterators).

All predicate / mutator callables receive the current value, current key and the whole collection as arguments.

map & filter do not execute immediately, but instead stack up until you need to get a value (calling squash, toArray, value). Where possible helpers use map & filter in order to minimize RAM usage. This means that it is possible to iterate through a large file reading line by line while maintaining a minimal memory footprint.

Install

Via Composer

composer require vakata/collection

Usage

$collection = \vakata\collection\Collection::from([1,2,3,4,5,6]);
$result = $collection
    ->filter(function ($v) { return $v % 2 === 0; })
    ->map(function ($v) { return $v + 1; })
    ->head(2)
    ->toArray();

Read more in the API docs

Testing

composer test

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email github@vakata.com instead of using the issue tracker.

Credits

A big thanks to im0rtality and the great Underscore package

License

The MIT License (MIT). Please see License File for more information.