此包已被 废弃 并不再维护。未建议替代包。

PHP 集合框架

v3.0.0-beta7 2020-03-12 06:23 UTC

README

Latest Stable Version Build Status Test Coverage

目标

方便安全 的方式来处理集合。

...这已经被一些其他库(如 nikic/iterdoctrine/collectionsphp-ds/php-ds)解决。这就是为什么当前库版本只包含一些辅助函数来方便地集成这些库。

安装

composer require alexeyshockov/colada:~3.0

用法

库的函数按命名空间划分,一个命名空间 = 特定依赖的函数(在大多数情况下)。

\Colada\ds\{group_by}

此命名空间中的辅助函数需要 php-ds/php-ds 可用。

group_by() 函数根据分组函数从可迭代对象生成一个二维数组(\ArrayObject\Ds\Map,取决于分组键的类型)。

TODO

\Colada\GuzzleHttp\{coroutine_invoke, coroutine, time_sleep}

\Colada\React\{coroutine_invoke, coroutine}

此命名空间中的辅助函数需要 guzzlehttp/promisesreact/promise 可用。

这是应用于两个最流行的具有异步能力的库的概念。如果你熟悉 C# 中的 async/await、node.js 或 Go 中的协程,这应该很简单。看看用回调风格和协程风格编写的脚本。

TODO
TODO

\Colada\iter\opt\{get, head, last, find_one}

此命名空间中的辅助函数需要 phpoption/phpoption 可用。

\Colada\iter\{to_kv_pairs, each_n_and_last, uasort, uksort}

为通用 iterable 类型提供简单辅助函数。

uasort()uksort() 实际上与内部函数基本等价,但适用于任意 iterable 类型。

贡献

运行测试

要运行所有测试,请安装供应商(使用 Composer)并执行

vendor/bin/phpunit --testdox

公共API

所有打算供用户使用的类或函数都应该使用@api PHPDoc标签进行标记。没有此标记的内容是内部的,不应被最终用户使用(不保证接口在版本之间保持相同)。