Skip to content

Commit 8193b44

Browse files
mcfedrondrejmirtes
authored andcommitted
Remove direct use of ORM and ODM for composer-require-checker
1 parent f0d5db7 commit 8193b44

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/Type/Doctrine/ObjectMetadataResolver.php

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
namespace PHPStan\Type\Doctrine;
44

55
use Doctrine\Common\Persistence\ObjectManager;
6-
use Doctrine\ODM\MongoDB\Mapping\ClassMetadata as ODMMetadata;
7-
use Doctrine\ORM\Mapping\ClassMetadata as ORMMetadata;
86
use RuntimeException;
97
use function file_exists;
108
use function is_readable;
@@ -32,7 +30,12 @@ public function __construct(?string $objectManagerLoader, ?string $repositoryCla
3230
}
3331
}
3432

35-
private function getObjectManager(string $objectManagerLoader): ObjectManager
33+
/**
34+
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint
35+
* @param string $objectManagerLoader
36+
* @return ObjectManager
37+
*/
38+
private function getObjectManager(string $objectManagerLoader)
3639
{
3740
if (! file_exists($objectManagerLoader) && ! is_readable($objectManagerLoader)) {
3841
throw new RuntimeException('Object manager could not be loaded');
@@ -49,12 +52,18 @@ public function getRepositoryClass(string $className): string
4952

5053
$metadata = $this->objectManager->getClassMetadata($className);
5154

52-
if ($metadata instanceof ORMMetadata) {
53-
return $metadata->customRepositoryClassName ?? $this->repositoryClass;
55+
$ormMetadataClass = 'Doctrine\ORM\Mapping\ClassMetadata';
56+
if ($metadata instanceof $ormMetadataClass) {
57+
/** @var \Doctrine\ORM\Mapping\ClassMetadata $ormMetadata */
58+
$ormMetadata = $metadata;
59+
return $ormMetadata->customRepositoryClassName ?? $this->repositoryClass;
5460
}
5561

56-
if ($metadata instanceof ODMMetadata) {
57-
return $metadata->customRepositoryClassName ?? $this->repositoryClass;
62+
$odmMetadataClass = 'Doctrine\ODM\MongoDB\Mapping\ClassMetadata';
63+
if ($metadata instanceof $odmMetadataClass) {
64+
/** @var \Doctrine\ODM\MongoDB\Mapping\ClassMetadata $odmMetadata */
65+
$odmMetadata = $metadata;
66+
return $odmMetadata->customRepositoryClassName ?? $this->repositoryClass;
5867
}
5968

6069
return $this->repositoryClass;

0 commit comments

Comments
 (0)