Skip to content

Commit 22f4086

Browse files
authored
Merge pull request #2579 from alcaeus/use-cursor-interface
Aggregation uses CursorInterface instead of Cursor
2 parents aadcca0 + d1df723 commit 22f4086

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

lib/Doctrine/ODM/MongoDB/Aggregation/Aggregation.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@
1010
use Doctrine\ODM\MongoDB\Iterator\Iterator;
1111
use Doctrine\ODM\MongoDB\Iterator\UnrewindableIterator;
1212
use Doctrine\ODM\MongoDB\Mapping\ClassMetadata;
13+
use Iterator as SPLIterator;
1314
use IteratorAggregate;
1415
use MongoDB\Collection;
15-
use MongoDB\Driver\Cursor;
16+
use MongoDB\Driver\CursorInterface;
1617

1718
use function array_merge;
1819
use function assert;
@@ -35,12 +36,14 @@ public function getIterator(): Iterator
3536
$options = array_merge($this->options, ['cursor' => true]);
3637

3738
$cursor = $this->collection->aggregate($this->pipeline, $options);
38-
assert($cursor instanceof Cursor);
39+
// This assertion can be dropped when requiring mongodb/mongodb 1.17.0
40+
assert($cursor instanceof CursorInterface);
41+
assert($cursor instanceof SPLIterator);
3942

4043
return $this->prepareIterator($cursor);
4144
}
4245

43-
private function prepareIterator(Cursor $cursor): Iterator
46+
private function prepareIterator(CursorInterface&SPLIterator $cursor): Iterator
4447
{
4548
if ($this->classMetadata) {
4649
$cursor = new HydratingIterator($cursor, $this->dm->getUnitOfWork(), $this->classMetadata);

0 commit comments

Comments
 (0)