tobento / service-iterable
可迭代对象和迭代器
1.0.0
2022-10-28 17:03 UTC
Requires
- php: >=8.0
- tobento/service-filesystem: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.0
This package is not auto-updated.
Last update: 2024-09-29 00:21:17 UTC
README
可迭代辅助工具和在其他服务中使用的常见迭代器。
目录
入门
使用以下命令添加运行此命令的迭代服务项目的最新版本。
composer require tobento/service-iterable
要求
- PHP 8.0 或更高版本
亮点
- 框架无关,可与其他任何项目一起使用
- 解耦设计
文档
可迭代对象
toArray
将任何可迭代对象转换为数组。
use Tobento\Service\Iterable\Iter; $iterable = ['key' => 'value']; $array = Iter::toArray(iterable: $iterable);
toIterator
将任何可迭代对象转换为迭代器。
use Tobento\Service\Iterable\Iter; use Iterator; $iterable = ['key' => 'value']; $iterator = Iter::toIterator(iterable: $iterable); var_dump($iterator instanceof Iterator); // bool(true)
迭代器
分块迭代器
use Tobento\Service\Iterable\ChunkIterator; $iterator = new ChunkIterator( iterable: range(1, 10), chunkLength: 2, ); foreach($iterator as $chunk) {} // [1, 2], [3, 4], ...
修改迭代器
use Tobento\Service\Iterable\ModifyIterator; $iterator = new ModifyIterator( iterable: range(1, 5), modifier: function(int $number): int { return $number * 10; } ); foreach($iterator as $number) {} // 10, 20, ...
项目工厂迭代器
您可以使用项目工厂迭代器来初始化项目,并使用 Seeder 服务来生成模拟数据。
use Tobento\Service\Iterable\ItemFactoryIterator; use Tobento\Service\Seeder\Str; use Tobento\Service\Seeder\Arr; $callable = function(): array { return [ 'name' => Str::string(10), 'color' => Arr::item(['green', 'red', 'blue']), ]; }; $iterator = new ItemFactoryIterator( factory: $callable, create: 10 );
JSON 文件迭代器
use Tobento\Service\Iterable\JsonFileIterator; $iterator = new JsonFileIterator( file: 'private/src/file.json', ); foreach($iterator as $key => $item) {}
对于大型文件,您可以考虑使用Json Maschine。