fschaechter / php-collection
处理数据集的库
Requires
- php: >=5.3.10
Requires (Dev)
- ext-xdebug: >=2.1.0
- mockery/mockery: 0.9.1
- pdepend/pdepend: 2.0.0
- phploc/phploc: 2.0.6
- phpmd/phpmd: 2.0.0
- phpunit/phpunit: 3.7.37
- sebastian/phpcpd: 2.0.1
- squizlabs/php_codesniffer: 1.5.4
This package is not auto-updated.
Last update: 2024-09-18 19:09:09 UTC
README
PHP-Collection 是一个易于使用的数据集处理库,支持过滤、排序和减少数据集。
类 Collection 扩展了 PHP 的 ArrayObject,因此带来了一些额外的功能。
安装
您可以直接克隆仓库并按需使用,或者使用 Composer 高效地处理依赖管理。
Composer
将以下行添加到 composer.json 文件的 require-key 中。
"fschaechter/php-collection": "~2"
问题和错误
您可以在 这里 报告错误、问题和其他问题。任何有用的信息都备受赞赏。
教程
首先,您需要一些数据并创建一个集合。
<?php
$data = array(
"Apple",
"Apple,"
"Pear",
"Been",
"Pear",
"Strawberry",
);
$collection = new \Collection\Collection($data);
添加更多数据。
<?php
$collection->append("Been");
$collection[] = "Pear";
现在您可以遍历这些数据。
<?php
echo sprinft(
"We have %s items." . PHP_EOL,
count($collection)
);
foreach ($collection as $item) {
echo $item . PHP_EOL;
}
如果集合已排序就更好了。
<?php
$comparator = new \Collection\Comparator\String();
$sorter = new \Collection\Sorter\Uasort($comparator);
$collection->sort($sorter);
foreach ($collection as $item) {
echo $item . PHP_EOL;
}
我们不喜欢苹果。
<?php
$filter = new \Collection\Filter\Unequal("Apple");
$collection = $collection->filter($filter);
foreach ($collection as $item) {
echo $item . PHP_EOL;
}
让我们提炼这些项目。
<?php
$reducer = new \Collection\Reducer\Distinct();
$collection = $collection->reduce($reducer);
foreach ($collection as $item) {
echo $item . PHP_EOL;
}
更多示例
查看 examples 目录,那里您可以找到如何操作集合的三个示例。
- 查看 example_filter.php 来查看过滤器系统是如何工作的。
- 查看 example_reduce.php 来查看如何消除不需要的数据。
- 查看 example_sort.php 来查看如何对一个对象集合进行排序。
质量如何?
此库是在 TDD 原则下开发的。您可以在 tests 目录中找到所有测试。您可以使用 PHPUnit 自行检查。
$ bin/phpunit
Apache Ant 用于完整的构建过程。请参阅 build.xml 文件,该文件基于您可以在 PHPUnit's github.com 仓库 中找到的文件。
$ ant
Travis-CI 确保它被反复测试。
技巧和窍门
增强 PATH
所有命令都由 Composer 安装到 bin 目录。将此目录添加到环境路径,以便更容易访问。
以下是一个 BASH 的示例,将此行添加到 ~/.bashrc 中。
PATH="./bin:$PATH"
现在运行单元测试非常简单。
$ phpunit
而不是
$ bin/phpunit
生产率得到了极大的提高。
为什么?
我几乎每天都在遇到列表形式的数据,我需要一种简单、可测试且实用的方法来提取这些列表的信息。
许可证
此库根据 GNU 通用公共许可证第 3 版的条款进行许可。
有什么新功能?
2.3.1 更新了文档。
添加了 Travis CI 状态图像。更新了文档。
2.3.0 异常和新的过滤器。
添加了异常类。添加了一个新的过滤器,用于简单过滤数组。
2.2.0 优化了集合。
向Collection中添加了isEmpty()方法,因此您可以检查集合是否为空或包含一些元素。
2.1.0 优化了集合。
向Collection中添加了getFirst()方法。这使得访问集合的第一个元素更加容易。
2.0.1 修复了示例。
在examples/example_sort.php示例中存在一个错误。
2.0.0 重构了比较器。
比较器从命名空间 \Collection\Sorter\Comparator 移动到 \Collection\Comparator。这导致了与先前版本1.0.0的API不兼容。
1.0.0 开始构建库。
这是初始项目。