diff --git a/config/services/services.neon b/config/services/services.neon index ccbe9822..7d92cf30 100644 --- a/config/services/services.neon +++ b/config/services/services.neon @@ -9,6 +9,7 @@ services: - Symplify\PHPStanRules\Naming\ClassToSuffixResolver - Symplify\PHPStanRules\NodeAnalyzer\AttributeFinder - Symplify\PHPStanRules\NodeAnalyzer\EnumAnalyzer + - Symplify\PHPStanRules\NodeAnalyzer\LaravelPresenceResolver - Symplify\PHPStanRules\ParentClassMethodNodeResolver - Symplify\PHPStanRules\PhpDoc\BarePhpDocParser - Symplify\PHPStanRules\PhpDoc\PhpDocResolver diff --git a/config/symfony-rules.neon b/config/symfony-rules.neon index 40941ccd..a65240be 100644 --- a/config/symfony-rules.neon +++ b/config/symfony-rules.neon @@ -55,8 +55,6 @@ conditionalTags: phpstan.rules.rule: %symplify.symfony% services: - - Symplify\PHPStanRules\NodeAnalyzer\LaravelPresenceResolver - - class: Symplify\PHPStanRules\Composer\ComposerRequireResolver arguments: diff --git a/tests/NodeAnalyzer/LaravelPresenceResolverTest.php b/tests/NodeAnalyzer/LaravelPresenceResolverTest.php index eb9da903..ef17bf6d 100644 --- a/tests/NodeAnalyzer/LaravelPresenceResolverTest.php +++ b/tests/NodeAnalyzer/LaravelPresenceResolverTest.php @@ -16,4 +16,20 @@ public function testNonLaravelProject(): void // Laravel is not installed here, so it must not be detected $this->assertFalse($laravelPresenceResolver->isLaravelProject()); } + + public function testRegisteredInSharedServices(): void + { + // rules picked one by one only include services.neon, so the resolver must be registered there + $laravelPresenceResolver = self::getContainer()->getByType(LaravelPresenceResolver::class); + + $this->assertInstanceOf(LaravelPresenceResolver::class, $laravelPresenceResolver); + } + + /** + * @return string[] + */ + public static function getAdditionalConfigFiles(): array + { + return [__DIR__ . '/../config/included_services.neon']; + } }