rixxi/utils

1.0.0 2014-05-06 11:25 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:06:34 UTC


README

批处理允许您将获取数据和批量处理它们的代码分开。它有很多用途。

示例

每行写10个字符。

use Rixxi\Utils\Batch;

$batch = new Batch(function ($values) {
	echo implode($values), PHP_EOL;
}, $limit = 80);

$lines = 10;
for ($x = $limit * $lines; $x-- > 0;) {
	$batch[] = chr(ord('A') + rand(0, 26 /* ord('Z') - ord('A') */));
}

刷新 & 回调

当达到限制或销毁时,批处理会自动刷新和重置。

如果自开始或上次刷新以来没有向批处理添加任何项,则不会调用回调。

您可以在任何时候通过调用 flush() 手动刷新批处理。

$batch->flush();

或者,在批处理上调用 unset 来刷新并丢弃。

unset($batch);

通常您不需要 unset,因为垃圾回收器将在函数结束时为您执行。

安装

composer require rixxi/utils

故障排除

如果您在通过批处理处理数据后遇到随机错误,请确保在执行任何其他操作之前刷新它。 您可能认为所有数据都已刷新,但实际上可能在最后一轮之后还剩下一些。

例如:在 Doctrine 中处理实体时,不要忘记在调用 $repository->clear(); 之前手动刷新。