BulkFetcher
\ADT\BulkFetcher\Factory
can be used with:, (*1)
\Kdyby\Doctrine\ResultSet
\Doctrine\ORM\QueryBuilder
\Kdyby\Doctrine\NativeQueryBuilder
Installation
via composer:, (*2)
composer require adt/bulk-fetcher
Full example
Whole batch is in transaction., (*3)
$qb = $entityManager->createQueryBuilder('user');
try {
$entityManager->beginTransaction();
$data = \ADT\BulkFetcher\Factory::create($qb, 100);
$data->onBeforeFetch[] = function() use ($entityManager) {
$entityManager->commit();
$entityManager->clear();
$entityManager->beginTransaction();
};
foreach ($data as $key => $row) {
// code
}
$entityManager->commit();
} catch (\Exception $e) {
$entityManager->rollback();
throw $e;
}