plumphp / plum-doctrine
PlumDoctrine 将 Doctrine 集成到 Plum 中。Plum 是一个用于 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-09-20 09:46:58 UTC
README
PlumDate 将 Doctrine 集成到 Plum 中。Plum 是一个用于 PHP 的数据处理管道。
由欧洲维也纳的 Florian Eckerstorfer 开发。
安装
您可以使用 Composer 安装 PlumDoctrine。
$ composer require plumphp/plum-doctrine
用法
有关更多信息,请参阅 Plum 文档。
Doctrine ORM
EntityWriter
用于 Doctrine ORM
Plum\PlumDoctrine\ORM\EntityWriter
使用 Doctrine\ORM\EntityManagerInterface
实例持久化实体。它支持配置的批量操作和刷新间隔。
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
如果您一次刷新太多实体,可以将 flushInterval
选项设置为每写入 x
个实体后刷新。
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
将 flushInterval
选项设置为 null
(也是默认值),则仅在调用 finish()
时刷新事务。如果没有使用 writeItem()
写入任何项,则写入器永远不会调用 flush()
。
QueryReader
用于 Doctrine ORM
Plum\PlumDoctrine\ORM\QueryReader
接收一个 Doctrine\ORM\AbstractQuery
实例,并返回结果的一个迭代器。
use Plum\PlumDoctrine\ORM\QueryReader; $reader = new QueryReader($query); $reader->getIterator(); // -> ArrayIterator<object> $reader->count(); // -> int
可以使用 hydrationMode
选项设置数据填充模式。
use Plum\PlumDoctrine\ORM\QueryReader; $reader = new QueryReader($query, ['hydrationMode' => Doctrine\ORM\Query::HYDRATE_ARRAY); $reader->getIterator(); // -> ArrayIterator<array>
RepositoryReader
用于 Doctrine ORM
Plum\PlumDoctrine\ORM\RepositoryReader
接收一个 Doctrine\ORM\EntityRepository
和一个简单条件,并返回一个包含结果的迭代器。
use Plum\PlumDoctrine\ORM\RepositoryReader; $reader = new RepositoryReader($repository, ['age' => 20]); $reader->getIterator(); // -> ArrayIterator $reader->count(); // -> int
变更日志
版本 0.1 (2015年10月24日)
- 初始发布
许可
MIT 许可证适用于 plumphp/plum-doctrine。有关完整的版权和许可信息,请查看与源代码一起分发的 LICENSE 文件。