File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change 2
2
3
3
namespace PHPStan \Type \Doctrine ;
4
4
5
+ use Doctrine \ORM \Mapping \Entity ;
5
6
use Doctrine \Persistence \ObjectManager ;
6
7
use PHPStan \Reflection \ReflectionProvider ;
7
8
use function is_file ;
@@ -97,6 +98,17 @@ public function getResolvedRepositoryClass(): string
97
98
98
99
public function getRepositoryClass (string $ className ): string
99
100
{
101
+ if (PHP_MAJOR_VERSION >= 8 && $ this ->reflectionProvider ->hasClass ($ className )) {
102
+ $ classReflection = $ this ->reflectionProvider ->getClass ($ className )->getNativeReflection ();
103
+ $ attribute = $ classReflection ->getAttributes (Entity::class)[0 ] ?? null ;
104
+ if ($ attribute !== null ) {
105
+ $ attributeInstance = $ attribute ->newInstance ();
106
+ if ($ attributeInstance ->repositoryClass !== null ) {
107
+ return $ attributeInstance ->repositoryClass ;
108
+ }
109
+ }
110
+ }
111
+
100
112
$ objectManager = $ this ->getObjectManager ();
101
113
if ($ objectManager === null ) {
102
114
return $ this ->getResolvedRepositoryClass ();
You can’t perform that action at this time.
0 commit comments