diff --git a/.github/workflows/code_analysis.yaml b/.github/workflows/code_analysis.yaml index 21ef34185..c752254ed 100644 --- a/.github/workflows/code_analysis.yaml +++ b/.github/workflows/code_analysis.yaml @@ -32,6 +32,10 @@ jobs: name: 'Tests' run: vendor/bin/phpunit + - + name: 'Composer Dependency Analysis' + run: vendor/bin/composer-dependency-analyser + - name: 'Check Active Classes' run: vendor/bin/class-leak check src --ansi diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php index a24219e43..e5911ab5e 100644 --- a/composer-dependency-analyser.php +++ b/composer-dependency-analyser.php @@ -5,19 +5,27 @@ use ShipMonk\ComposerDependencyAnalyser\Config\Configuration; use ShipMonk\ComposerDependencyAnalyser\Config\ErrorType; -return (new Configuration())->addPathToScan(__DIR__ . '/src', false) +return (new Configuration()) ->addPathToExclude(__DIR__ . '/tests/Rules/Rector/NoInstanceOfStaticReflectionRule/Fixture') ->addPathToExclude(__DIR__ . '/tests/Rules/Enum/RequireUniqueEnumConstantRule/Fixture') ->addPathToExclude(__DIR__ . '/tests/Rules/ForbiddenExtendOfNonAbstractClassRule/Fixture') ->addPathToExclude(__DIR__ . '/tests/Rules/PHPUnit/NoTestMocksRule/Fixture') + // optional classes + ->ignoreUnknownClasses(['Symfony\Component\ExpressionLanguage\Expression']) + // already in phpstan/phpstan ->ignoreErrorsOnPackage('nikic/php-parser', [ErrorType::DEV_DEPENDENCY_IN_PROD]) + ->ignoreErrorsOnPackage('symfony/routing', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/var-dumper', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/service-contracts', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/http-kernel', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/event-dispatcher', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/deprecation-contracts', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/dependency-injection', [ErrorType::SHADOW_DEPENDENCY]) + ->ignoreErrorsOnPackage('symfony/config', [ErrorType::SHADOW_DEPENDENCY]) // rule that runs on Rector rule only ->ignoreErrorsOnPackage('rector/rector', [ErrorType::DEV_DEPENDENCY_IN_PROD]) - ->ignoreErrorsOnExtension('ext-ctype', [ErrorType::SHADOW_DEPENDENCY]) ->ignoreErrorsOnExtension('ext-simplexml', [ErrorType::SHADOW_DEPENDENCY]); - -// ->ignoreErrorsOnPath('/Fixture/', [\ShipMonk\ComposerDependencyAnalyser\Config\ErrorType::UNKNOWN_CLASS]); diff --git a/composer.json b/composer.json index 966c9302d..aafbcc2fe 100644 --- a/composer.json +++ b/composer.json @@ -37,6 +37,9 @@ }, "classmap": [ "stubs" + ], + "files": [ + "vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php" ] }, "config": { diff --git a/src/Rules/PHPUnit/NoMockObjectAndRealObjectPropertyRule.php b/src/Rules/PHPUnit/NoMockObjectAndRealObjectPropertyRule.php index 45d34f50c..b76fb426a 100644 --- a/src/Rules/PHPUnit/NoMockObjectAndRealObjectPropertyRule.php +++ b/src/Rules/PHPUnit/NoMockObjectAndRealObjectPropertyRule.php @@ -13,7 +13,7 @@ use PHPStan\Rules\Rule; use PHPStan\Rules\RuleError; use PHPStan\Rules\RuleErrorBuilder; -use PHPUnit\Framework\MockObject\MockObject; +use Symplify\PHPStanRules\Enum\ClassName; use Symplify\PHPStanRules\Enum\RuleIdentifier\PHPUnitRuleIdentifier; /** @@ -46,7 +46,7 @@ public function processNode(Node $node, Scope $scope): array continue; } - if ($type->toString() !== MockObject::class) { + if ($type->toString() !== ClassName::MOCK_OBJECT_CLASS) { continue; } diff --git a/stubs/Doctrine/ODM/MongoDB/Event/OnFlushEventArgs.php b/stubs/Doctrine/ODM/MongoDB/Event/OnFlushEventArgs.php new file mode 100644 index 000000000..e07598988 --- /dev/null +++ b/stubs/Doctrine/ODM/MongoDB/Event/OnFlushEventArgs.php @@ -0,0 +1,8 @@ +