webit/doctrine-orm-query-builder-iterator 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

webit/doctrine-orm-query-builder-iterator

最新稳定版本:3.0.0

Composer 安装命令:

composer require webit/doctrine-orm-query-builder-iterator

包简介

README 文档

README

Allows to iterate over Query Builder Results in batches

Installation

composer require webit/doctrine-orm-query-builder-iterator=^2.0.0

Usage

QueryIterator implementation

This implementation iterates over given query using limit / offset parameters.

<?php
use Webit\DoctrineORM\QueryBuilder\Iterator\QueryIterator;

/** @var \Doctrine\ORM\EntityManagerInterface $entityManager */

$queryBuilder = $entityManager->getRepository('MyEntity')->createQueryBuilder();
$queryBuilder->orderBy('a.ble', 'DESC');

$iterator = new QueryIterator(
    $queryBuilder,
    20, // iterates in 50 elements batches (50 by default)
    ['MyEntity'], // clears entity manager before getting next batch (by default clears the whole entity manager) 
);

foreach ($iterator as $entity) {
    // do your stuff with the entity
}

IdsIterator implementation

This implementation iterates over given query using pre-fetched list of identifiers.

<?php
use Webit\DoctrineORM\QueryBuilder\Iterator\IdsIterator;

/** @var \Doctrine\ORM\EntityManagerInterface $entityManager */

$queryBuilder = $entityManager->getRepository('MyEntity')->createQueryBuilder();
$queryBuilder->orderBy('a.ble', 'DESC');

$iterator = new IdsIterator(
    $queryBuilder,
    'a.id', // the ID field
    20, // iterates in 20 elements batches (50 by default)
    ['MyEntity'], // clears entity manager before getting next batch (by default clears the whole entity manager) 
);

foreach ($iterator as $entity) {
    // do your stuff with the entity
}

Tests

composer install
./vendor/bin/phpunit

统计信息

  • 总下载量: 63.84k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-01-06