alexeyshockov / colada
此包已被 废弃 并不再维护。未建议替代包。
PHP 集合框架
v3.0.0-beta7
2020-03-12 06:23 UTC
Requires
- php: ~7.1
- symfony/polyfill-php72: @stable
- symfony/polyfill-php73: @stable
Requires (Dev)
- danielstjules/stringy: ~2.1 || ~3.0
- giorgiosironi/eris: ^0.11.0
- guzzlehttp/guzzle: ~6.3 || ~7.0@dev
- lstrojny/functional-php: ~1.4
- nesbot/carbon: ~2.0
- nikic/iter: ~1.6 || ~2.0
- php-ds/php-ds: ~1.0
- phpoption/phpoption: ~1.5
- phpunit/phpunit: ~7.0
- react/dns: @stable
- react/partial: ~3.0
- react/promise: @stable
- squizlabs/php_codesniffer: ~3.0
- symfony/stopwatch: ~3.0 || ~4.0
Suggests
- alexeyshockov/colada-x: A small helper function to write closures faster (for PHP < 7.4)
- danielstjules/stringy: Convenient string manipulations
- guzzlehttp/guzzle: The most popular library for HTTP interactions
- lstrojny/functional-php: Some functional primitives
- nesbot/carbon: Convenient date and time manipulations
- nikic/iter: Basic helper functions to work with collections (generators)
- php-ds/php-ds: Effective data structures for PHP (\Colada\iter\ds)
- phpoption/phpoption: Optional values for PHP (\Colada\iter\opt)
- react/partial: Partial functions
- symfony/stopwatch: Timing related stuff (\Colada\iter\sw)
This package is auto-updated.
Last update: 2024-01-12 14:39:17 UTC
README
目标
方便 且 安全 的方式来处理集合。
...这已经被一些其他库(如 nikic/iter、doctrine/collections 或 php-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/promises 或 react/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标签进行标记。没有此标记的内容是内部的,不应被最终用户使用(不保证接口在版本之间保持相同)。