From c62b5e30047f7331fc6dca2813f80f60f88b9177 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 5 Aug 2026 14:09:29 +0200 Subject: [PATCH 1/2] [Sets] Ignore the deprecated set objects in DoctrineSetProvider rectorphp/rector-src#8296 deprecates the set objects in favor of bonding rules with the ComposerPackageConstraintInterface. Doctrine is still resolved through composer-triggered sets, so the provider keeps using them until its rules are bonded. The entry is not reported when unmatched, so it holds both before and after the deprecation is released. --- phpstan.neon | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/phpstan.neon b/phpstan.neon index 5ffd0490..fc4f3c93 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -80,3 +80,12 @@ parameters: - path: tests/debug_functions.php message: '#Function "function_exists\(\)"#' + + # the set objects are deprecated in favor of the ComposerPackageConstraintInterface, but Doctrine is still + # resolved through composer-triggered sets + # @see https://github.com/rectorphp/rector-src/pull/8296 + - + message: '#deprecated (class|interface) Rector\\Set\\#' + path: src/Set/SetProvider/DoctrineSetProvider.php + # the deprecation is not released yet, so the errors are not reported here yet either + reportUnmatched: false From e66cdb1dd26df016c5d99d8f1a6b1b5067144d1a Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 5 Aug 2026 14:19:45 +0200 Subject: [PATCH 2/2] [Sets] Remove DoctrineSetProvider, its sets are covered by the composer-based rules --- phpstan.neon | 9 - src/Set/SetProvider/DoctrineSetProvider.php | 174 -------------------- 2 files changed, 183 deletions(-) delete mode 100644 src/Set/SetProvider/DoctrineSetProvider.php diff --git a/phpstan.neon b/phpstan.neon index fc4f3c93..5ffd0490 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -80,12 +80,3 @@ parameters: - path: tests/debug_functions.php message: '#Function "function_exists\(\)"#' - - # the set objects are deprecated in favor of the ComposerPackageConstraintInterface, but Doctrine is still - # resolved through composer-triggered sets - # @see https://github.com/rectorphp/rector-src/pull/8296 - - - message: '#deprecated (class|interface) Rector\\Set\\#' - path: src/Set/SetProvider/DoctrineSetProvider.php - # the deprecation is not released yet, so the errors are not reported here yet either - reportUnmatched: false diff --git a/src/Set/SetProvider/DoctrineSetProvider.php b/src/Set/SetProvider/DoctrineSetProvider.php deleted file mode 100644 index 40831cd2..00000000 --- a/src/Set/SetProvider/DoctrineSetProvider.php +++ /dev/null @@ -1,174 +0,0 @@ - - */ - private const array COMPOSER_BASED_TRIGGER_PACKAGES = [ - 'doctrine/data-fixtures' => '>=1.6', - 'doctrine/common' => '>=2.0', - 'doctrine/collections' => '>=2.2', - 'doctrine/doctrine-bundle' => '>=2.3', - 'doctrine/orm' => '>=2.5', - 'doctrine/dbal' => '>=2.11', - 'doctrine/mongodb-odm' => '>=2.3', - 'doctrine/mongodb-odm-bundle' => '>=4.4', - 'gedmo/doctrine-extensions' => '>=3.5', - ]; - - /** - * @return SetInterface[] - */ - public function provide(): array - { - return [ - ...$this->provideComposerBasedSets(), - - new Set(SetGroup::DOCTRINE, 'Code Quality', __DIR__ . '/../../../config/sets/doctrine-code-quality.php'), - new Set(SetGroup::DOCTRINE, 'Typed Collections', __DIR__ . '/../../../config/sets/typed-collections.php'), - - // @see https://github.com/rectorphp/getrector-com/pull/2672 - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/common', - '2.0', - __DIR__ . '/../../../config/sets/doctrine-common-20.php' - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/collection', - '2.2', - __DIR__ . '/../../../config/sets/doctrine-collection-22.php', - ), - - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/doctrine-bundle', - '2.3', - __DIR__ . '/../../../config/sets/doctrine-bundle-23.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/doctrine-bundle', - '2.8', - __DIR__ . '/../../../config/sets/doctrine-bundle-28.php', - ), - - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/dbal', - '3.0', - __DIR__ . '/../../../config/sets/doctrine-dbal-30.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/dbal', - '3.8', - __DIR__ . '/../../../config/sets/doctrine-dbal-38.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/dbal', - '4.0', - __DIR__ . '/../../../config/sets/doctrine-dbal-40.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/dbal', - '4.2', - __DIR__ . '/../../../config/sets/doctrine-dbal-42.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/dbal', - '2.11', - __DIR__ . '/../../../config/sets/doctrine-dbal-211.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/orm', - '2.5', - __DIR__ . '/../../../config/sets/doctrine-orm-25.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/orm', - '2.13', - __DIR__ . '/../../../config/sets/doctrine-orm-213.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/orm', - '2.14', - __DIR__ . '/../../../config/sets/doctrine-orm-214.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/orm', - '3.0', - __DIR__ . '/../../../config/sets/doctrine-orm-300.php', - ), - - new Set(SetGroup::ATTRIBUTES, 'Doctrine ORM', __DIR__ . '/../../../config/sets/attributes/doctrine.php'), - new Set(SetGroup::ATTRIBUTES, 'Gedmo', __DIR__ . '/../../../config/sets/attributes/gedmo.php'), - new Set(SetGroup::ATTRIBUTES, 'MongoDB', __DIR__ . '/../../../config/sets/attributes/mongodb.php'), - - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/data-fixtures', - '1.6', - __DIR__ . '/../../../config/sets/data-fixtures-16.php', - ), - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/data-fixtures', - '1.7', - __DIR__ . '/../../../config/sets/data-fixtures-17.php', - ), - - new ComposerTriggeredSet( - SetGroup::DOCTRINE, - 'doctrine/mongodb-odm', - '2.16', - __DIR__ . '/../../../config/sets/doctrine-mongodb-odm-216.php', - ), - ]; - } - - /** - * @return ComposerTriggeredSet[] - */ - private function provideComposerBasedSets(): array - { - $composerTriggeredSets = []; - - foreach (self::COMPOSER_BASED_TRIGGER_PACKAGES as $packageName => $version) { - $composerTriggeredSets[] = new ComposerTriggeredSet( - SetGroup::DOCTRINE, - $packageName, - $version, - __DIR__ . '/../../../config/sets/composer-based.php' - ); - } - - return $composerTriggeredSets; - } -}