im0rtality/underscore

PHP的函数式编程库

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

This package is not auto-updated.

Last update: 2024-09-28 15:28:56 UTC


README

Build Status Scrutinizer Quality Score Code Coverage SensioLabsInsight

PHP的函数式编程库

代码示例

库旨在尽可能简单易用。以下是一些展示功能操作的示例

    Underscore::from([1,2,3,4,5])
            // 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
        ->pick('number')
            // add numbers to 1000
        ->reduce(function($sum, $num) { $sum += $num; return $sum; }, 1000)
            // take result
        ->value();
            // 1006

动机

最初我需要其他项目中的函数式编程魔法,因此不得不选择一个库或自己编写。

有几个UnderscoreJS的PHP端口,但是没有一个符合我的要求(代码优雅、易于编写、标准化)

安装

通过composer

$ composer require im0rtality/underscore:*

Composer文档建议使用特定版本。您可以在发行版中找到它们。

文档

请参阅wiki

测试

测试以clover.xml格式生成覆盖率报告

$ vendor/bin/phpunit

许可证

MIT许可证:只要包含原始版权,您就可以做任何您想做的事情。