Skip to content

Commit 18d69bf

Browse files
authored
Merge pull request #3005 from ad3n/patch-3
Check for EntityManagerInterface in Doctrine ORM data providers
2 parents 96bfc4d + 1d7ab8f commit 18d69bf

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/Bridge/Doctrine/Orm/CollectionDataProvider.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use ApiPlatform\Core\Exception\RuntimeException;
2222
use Doctrine\Common\Persistence\ManagerRegistry;
2323
use Doctrine\Common\Persistence\ObjectManager;
24+
use Doctrine\ORM\EntityManagerInterface;
2425

2526
/**
2627
* Collection data provider for the Doctrine ORM.
@@ -45,7 +46,7 @@ public function __construct(ManagerRegistry $managerRegistry, iterable $collecti
4546

4647
public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
4748
{
48-
return null !== $this->managerRegistry->getManagerForClass($resourceClass);
49+
return $this->managerRegistry->getManagerForClass($resourceClass) instanceof EntityManagerInterface;
4950
}
5051

5152
/**

src/Bridge/Doctrine/Orm/ItemDataProvider.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
use ApiPlatform\Core\Metadata\Property\Factory\PropertyNameCollectionFactoryInterface;
2626
use Doctrine\Common\Persistence\ManagerRegistry;
2727
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
28-
use Doctrine\Common\Persistence\ObjectManager;
2928
use Doctrine\ORM\EntityManagerInterface;
3029
use Doctrine\ORM\QueryBuilder;
3130

@@ -56,7 +55,7 @@ public function __construct(ManagerRegistry $managerRegistry, PropertyNameCollec
5655

5756
public function supports(string $resourceClass, string $operationName = null, array $context = []): bool
5857
{
59-
return null !== $this->managerRegistry->getManagerForClass($resourceClass);
58+
return $this->managerRegistry->getManagerForClass($resourceClass) instanceof EntityManagerInterface;
6059
}
6160

6261
/**
@@ -68,7 +67,7 @@ public function supports(string $resourceClass, string $operationName = null, ar
6867
*/
6968
public function getItem(string $resourceClass, $id, string $operationName = null, array $context = [])
7069
{
71-
/** @var ObjectManager $manager */
70+
/** @var EntityManagerInterface $manager */
7271
$manager = $this->managerRegistry->getManagerForClass($resourceClass);
7372

7473
if ((\is_int($id) || \is_string($id)) && !($context[IdentifierConverterInterface::HAS_IDENTIFIER_CONVERTER] ?? false)) {
@@ -83,7 +82,7 @@ public function getItem(string $resourceClass, $id, string $operationName = null
8382
$identifiers = $id;
8483

8584
$fetchData = $context['fetch_data'] ?? true;
86-
if (!$fetchData && $manager instanceof EntityManagerInterface) {
85+
if (!$fetchData) {
8786
return $manager->getReference($resourceClass, $identifiers);
8887
}
8988

0 commit comments

Comments
 (0)