putheng / collection

PHP collection class for common operations (filter, map), supports anything iterable (iterators, arrays, generators)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

collection

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.

About

PHP collection class for common operations (filter, map), supports anything iterable (iterators, arrays, generators)

License:MIT License


Languages

Language:PHP 100.0%