PlumDate integrates Doctrine into Plum. Plum is a data processing pipeline for PHP.
Developed by Florian Eckerstorfer in Vienna, Europe.
You can install PlumDoctrine using Composer.
$ composer require plumphp/plum-doctrine
Please refer to the Plum documentation for more information.
Doctrine ORM
Plum\PlumDoctrine\ORM\EntityWriter
persists entities using an instance of Doctrine\ORM\EntityManagerInterface
. It
supports batch operations with a configurable flush interval.
use Plum\PlumDoctrine\ORM\EntityWriter;
$writer = new EntityWriter($entityManager);
$writer->prepare();
$writer->writeItem($user1); // persist, but no flush
$writer->writeItem($user2); // persist, but no flush
$writer->finish(); // flush
If you are persisting too many entities for one flush at the end you can set the flushInterval
option to flush after
writing every x
entities.
use Plum\PlumDoctrine\ORM\EntityWriter;
$writer = new EntityWriter($entityManager, ['flushInterval' => 3);
$writer->prepare();
$writer->writeItem($user1); // persist, but no flush
$writer->writeItem($user2); // persist, but no flush
$writer->writeItem($user3); // persist and flush
$writer->writeItem($user4); // persist, but no flush
$writer->finish(); // flush
Setting the flushInverval
option to null
, which is also the default value, flushes the transaction only when
calling finish()
. If no items are written using writeItem()
the writer will never call flush()
.
Plum\PlumDoctrine\ORM\QueryReader
takes an instance of Doctrine\ORM\AbstractQuery
and returns an iterator for the
result.
use Plum\PlumDoctrine\ORM\QueryReader;
$reader = new QueryReader($query);
$reader->getIterator(); // -> ArrayIterator<object>
$reader->count(); // -> int
The hydration mode can be set using the hydrationMode
option.
use Plum\PlumDoctrine\ORM\QueryReader;
$reader = new QueryReader($query, ['hydrationMode' => Doctrine\ORM\Query::HYDRATE_ARRAY);
$reader->getIterator(); // -> ArrayIterator<array>
Plum\PlumDoctrine\ORM\RepositoryReader
takes a Doctrine\ORM\EntityRepository
and a
simple condition
and returns an iterator with the results.
use Plum\PlumDoctrine\ORM\RepositoryReader;
$reader = new RepositoryReader($repository, ['age' => 20]);
$reader->getIterator(); // -> ArrayIterator
$reader->count(); // -> int
- Initial release
The MIT license applies to plumphp/plum-doctrine. For the full copyright and license information, please view the LICENSE file distributed with this source code.