3
3
namespace PHPStan \Type \Doctrine ;
4
4
5
5
use Doctrine \Common \Persistence \ObjectManager ;
6
- use Doctrine \ODM \MongoDB \Mapping \ClassMetadata as ODMMetadata ;
7
- use Doctrine \ORM \Mapping \ClassMetadata as ORMMetadata ;
8
6
use RuntimeException ;
9
7
use function file_exists ;
10
8
use function is_readable ;
@@ -32,7 +30,12 @@ public function __construct(?string $objectManagerLoader, ?string $repositoryCla
32
30
}
33
31
}
34
32
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 )
36
39
{
37
40
if (! file_exists ($ objectManagerLoader ) && ! is_readable ($ objectManagerLoader )) {
38
41
throw new RuntimeException ('Object manager could not be loaded ' );
@@ -49,12 +52,18 @@ public function getRepositoryClass(string $className): string
49
52
50
53
$ metadata = $ this ->objectManager ->getClassMetadata ($ className );
51
54
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 ;
54
60
}
55
61
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 ;
58
67
}
59
68
60
69
return $ this ->repositoryClass ;
0 commit comments