Functional programming library for PHP

v0.6.1 2016-04-04 12:41 UTC


Build Status Scrutinizer Quality Score Code Coverage SensioLabsInsight

Functional programming library for PHP

Code example

Library aims to be as easy to use as possible. Here is example of doing some not-so-meaningful operations to show off:

            // convert array format
        ->map(function($num) { return ['number' => $num];})
            // filter out odd elements
        ->filter(function($item) { return ($item['number'] % 2) == 0;})
            // vardump elements
        ->invoke(function($item) { var_dump($item);})
            // changed my mind, I only want numbers
            // add numbers to 1000
        ->reduce(function($sum, $num) { $sum += $num; return $sum; }, 1000)
            // take result
            // 1006


Originaly I needed functional programming magic for other project, so had to pick one lib or write my own.

There is several PHP ports of UnderscoreJS, however none of those fit my requirements (nice code, easy to write, standardized):


Via composer:

$ composer require im0rtality/underscore:*

Composer docs recommend to use specific version. You can look them up in Releases.


See wiki


Tests generate coverage reports in clover.xml format

$ vendor/bin/phpunit


MIT License: You can do whatever you want as long as you include the original copyright.