plumphp / plum-doctrine
PlumDoctrine integrates Doctrine into Plum. Plum is a data processing pipeline for PHP.
Requires
- doctrine/orm: ~2.5
- plumphp/plum: ~0.4
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~4.8
This package is auto-updated.
Last update: 2024-11-20 10:14:39 UTC
README
PlumDate integrates Doctrine into Plum. Plum is a data processing pipeline for PHP.
Developed by Florian Eckerstorfer in Vienna, Europe.
Installation
You can install PlumDoctrine using Composer.
$ composer require plumphp/plum-doctrine
Usage
Please refer to the Plum documentation for more information.
Doctrine ORM
EntityWriter
for 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()
.
QueryReader
for Doctrine ORM
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>
RepositoryReader
for Doctrine ORM
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
Change Log
Version 0.1 (24 October 2015)
- Initial release
License
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.