fschaechter/php-collection

处理数据集的库

2.3.1 2014-09-12 20:35 UTC

This package is not auto-updated.

Last update: 2024-09-18 19:09:09 UTC


README

PHP-Collection 是一个易于使用的数据集处理库,支持过滤、排序和减少数据集。

类 Collection 扩展了 PHP 的 ArrayObject,因此带来了一些额外的功能。

Build Status

安装

您可以直接克隆仓库并按需使用,或者使用 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 开始构建库。

这是初始项目。