rixxi / utils
1.0.0
2014-05-06 11:25 UTC
Requires
- php: >=5.3
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();
之前手动刷新。