crocodile2u / chainy
该包的最新版本(v1.0)没有可用的许可证信息。
v1.0
2018-12-09 07:51 UTC
Requires
- php: >=7.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2024-09-10 20:41:36 UTC
README
你有没有写过这样的代码?
$array = array_filter($array); $array = array_map( $array, function($element) { // ... manipulations ... return $modifiedElement; } ); sort($array);
你知道吗?你可以用更易读、更美观的方式做同样的事情
$chain = (new \chainy\Chain) ->filter() ->map( function($element) { // ... manipulations ... return $modifiedElement; } ) ->sort(); $array = $chain->apply($array);
Chainy 是一个函数管道,其中每个后续函数都从上一个函数的输出中获取输入。在上面的例子中,当在 $array 上调用 $chain->apply() 时,它将依次通过 filter()、map() 和 sort()。正如你所期望的,这些方法只是 PHP 内置函数 array_filter、array_map 和 sort 的包装。
这就是 Chainy 的使用方式
- 创建新的 Chain 实例。
- 设置管道,向链中添加元素(在这个例子中,filter 用于去除空元素,map 用于对每个过滤后存活下来的元素应用一些修改,然后对结果数组进行排序)。
- 在输入数组上调用 Chain->apply()。结果是经过过滤、修改和排序的数组。
$chain = (new \chainy\Chain) +------> filter() --+ | | | +--------------+ | | | +-> map(function()...) --+ | | | +------------------------+ | | | +-> sort(); | | $array = $chain->apply($array); | | |--------------------------+