php-brasil / collection
0.2.5
2018-06-28 16:56 UTC
Requires
- php: >=5.6
Requires (Dev)
- phpunit/phpunit: ^6.5
README
这是一个用于使用PHP管理集合的小型项目。
项目介绍
从很久以前开始,许多PHP扩展和模块的实现就一直在讨论。随着语言在各方面提供功能的日益融合,一些问题变得越来越明显。
PHP中数组处理的函数总是在这种讨论中占据一席之地,不可变性和使用的命名是讨论最多的点之一。
为了帮助处理数组和集合,我们推出了这个包,它可以与以下结构一起使用
打包
打包 是一个数组抽象,它具有处理不可变性和修改数组结构的方法。它有助于集中和链式修改原始数组。
提取
当处理大量数据时,有一些重要的点需要注意。PHP支持在关联数组中处理大量负载,但当数组由对象组成时,情况并非如此。
使用 提取,可以一次性从数百万行数据中恢复大量数据,使用关联数组提取,并在需要时“提取”对象实例。
如何安装
$ composer require php-brasil/collection
如何使用
导入和导出
require 'vendor/autoload.php'; use PhpBrasil\Collection\Pack; $array = Pack::create([['name' => 'PHP']]); foreach ($array as $item) { echo 'item ~> ', $item, ';', PHP_EOL; } # item ~> PHP;
增强PHP原生数组处理函数
require 'vendor/autoload.php'; use PhpBrasil\Collection\Pack; $pack = Pack::create([ ['id' => 3, 'amount' => 60], ['id' => 2, 'amount' => 20], ['id' => 3, 'amount' => 125], ]); $reduced = $pack->reduce(function($accumulator, $value) { $id = prop($value, 'id'); $amount = prop($value, 'amount'); if (!isset($accumulator[$id])) { $accumulator[$id] = [ 'id' => $id, 'amount' => 0, ]; } $accumulator[$id]['amount'] = $accumulator[$id]['amount'] + $amount; return $accumulator; }, []); echo stringify($reduced);
使用别名
require '/vendor/autoload.php'; use function PhpBrasil\Collection\pack; $array = pack([['name' => 'PHP']]); echo 'with-pluck ~> ', $array->pluck('name'), ';', PHP_EOL; echo 'original ~> ', $array, ';', PHP_EOL; # [ # "PHP" # ]; # [ # [ # "name" => "PHP" # ] # ];
使用常见数组操作来处理数组
echo Pack::create(['A', '', 'C'])->filter(); # [ # 0 => "A", # 2 => "C" # ];
与您的数据模型集成
$statement = $pdo->prepare("SELECT id, name FROM users WHERE name = ?"); $statement->execute([get('name')]); $users = Fetch::create($statement->fetchAll(PDO::FETCH_ASSOC), User::class); $first = $users->current(); echo get_class($first); echo $first->id; # User # 1