PHP code example of ocramius / doctrine-batch-utils
1. Go to this page and download the library: Download ocramius/doctrine-batch-utils library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ocramius / doctrine-batch-utils example snippets
use DoctrineBatchUtils\BatchProcessing\SimpleBatchIteratorAggregate;
$object1 = $entityManager->find('Foo', 1);
$object2 = $entityManager->find('Bar', 2);
$iterable = SimpleBatchIteratorAggregate::fromArrayResult(
[$object1, $object2], // items to iterate
$entityManager, // the entity manager to operate on
100 // items to traverse before flushing/clearing
);
foreach ($iterable as $record) {
// operate on records here
}
use DoctrineBatchUtils\BatchProcessing\SimpleBatchIteratorAggregate;
$iterable = SimpleBatchIteratorAggregate::fromQuery(
$entityManager->createQuery('SELECT f FROM Files f'),
100 // flush/clear after 100 iterations
);
foreach ($iterable as $record) {
// operate on records here
}
use DoctrineBatchUtils\BatchProcessing\SimpleBatchIteratorAggregate;
// This is where you'd persist/create/load your entities (a lot of them!)
$results = function () {
for ($i = 0; $i < 100000000; $i += 1) {
yield new MyEntity($i); // note: identifier must exist in the DB
}
};
$iterable = SimpleBatchIteratorAggregate::fromTraversableResult(
$results(),
$entityManager,
100 // flush/clear after 100 iterations
);
foreach ($iterable as $record) {
// operate on records here
}
// eventually after all records have been processed, the assembled transaction will be committed to the database
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.