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]);