adt/bulk-fetcher

v5.0 2024-06-19 08:56 UTC

This package is auto-updated.

Last update: 2024-09-19 09:39:07 UTC


README

\ADT\BulkFetcher\Factory 可以与以下一起使用

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

安装

通过 composer

composer require adt/bulk-fetcher

完整示例

整个批量都在事务中。

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