plumphp/plum-doctrine

PlumDoctrine 将 Doctrine 集成到 Plum 中。Plum 是一个用于 PHP 的数据处理管道。

v0.1 2015-10-24 11:52 UTC

This package is auto-updated.

Last update: 2024-09-20 09:46:58 UTC


README

Plum

PlumDate 将 Doctrine 集成到 Plum 中。Plum 是一个用于 PHP 的数据处理管道。

Build Status Scrutinizer Code Quality Code Coverage StyleCI

由欧洲维也纳的 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 文件。