This plugin allows to chunk results retrieved from a database in order to save memory.
composer require robotusers/cakephp-chunk
bin/cake plugin load Robotusers/Chunk
The plugin provides a custom ResultSet
class which accepts Cake\ORM\Query
instance.
Example:
$query = $table->find();
$results = new \Robotusers\Chunk\ORM\ResultSet($query);
foreach ($results as $result) {
// do stuff
}
You can control how many elements are in one "chunk" (1000 by default):
$query = $table->find();
$results = new \Robotusers\Chunk\ORM\ResultSet($query, ['size' => 100]);
The plugin provides also a behavior with chunk()
method:
$table->addBehavior('Robotusers/Chunk.Chunk');
$query = $table->find();
$results = $table->chunk($query, ['size' => 100]);