File tree Expand file tree Collapse file tree 4 files changed +34
-0
lines changed Expand file tree Collapse file tree 4 files changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ parameters :
2
+ ignoreErrors :
3
+ -
4
+ message : " #^Call to an undefined method ReflectionClass::getAttributes\\ (\\ )\\ .$#"
5
+ count : 1
6
+ path : src/Type/Doctrine/ObjectMetadataResolver.php
Original file line number Diff line number Diff line change
1
+ <?php declare (strict_types = 1 );
2
+
3
+ use PHPStan \DependencyInjection \NeonAdapter ;
4
+
5
+ $ adapter = new NeonAdapter ();
6
+
7
+ $ config = [];
8
+
9
+ if (PHP_VERSION_ID < 80000 ) {
10
+ $ config = array_merge_recursive ($ config , $ adapter ->load (__DIR__ . '/attribute-errors.neon ' ));
11
+ }
12
+
13
+ $ config ['parameters ' ]['phpVersion ' ] = PHP_VERSION_ID ;
14
+
15
+ return $ config ;
Original file line number Diff line number Diff line change 1
1
includes :
2
2
- extension.neon
3
3
- rules.neon
4
+ - ignore-by-php-version.neon.php
4
5
- vendor/phpstan/phpstan-strict-rules/rules.neon
5
6
- vendor/phpstan/phpstan-phpunit/extension.neon
6
7
- vendor/phpstan/phpstan-phpunit/rules.neon
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