adt/bulk-fetcher

Package info

github.com/AppsDevTeam/BulkFetcher

pkg:composer/adt/bulk-fetcher

Statistics

Installs: 38 753

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v5.1 2025-01-08 15:28 UTC

Requires

None

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT, BSD-3-Clause, GPL-2.0, GPL-3.0 35cc3e5dd19e206824df72956e35a949c2fc3a74

This package is auto-updated.

Last update: 2026-06-08 19:02:14 UTC


README

\ADT\BulkFetcher\Factory can be used with:

  • \Kdyby\Doctrine\ResultSet
  • \Doctrine\ORM\QueryBuilder
  • \Kdyby\Doctrine\NativeQueryBuilder

Installation

via composer:

composer require adt/bulk-fetcher

Full example

Whole batch is in transaction.

$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;
}