From 3e76429520e47fd44da236e2c17cc020cb5593ae Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 5 Aug 2026 11:07:24 +0200 Subject: [PATCH 1/3] [Sets] Drop per-version composer-triggered sets already covered by composer-based set Every rule in the per-version composer-triggered sets is already registered in composer-based.php, where it carries its own package version constraint. Keeping both meant the same rules were loaded twice, from two sources of truth. Only the composer-based set stays composer-triggered. The trigger package list is re-derived from composer-based.php itself, which fixes gates that sat above the version their rules actually need (framework-bundle 3.3 -> 2.5, form and validator 3.0 -> 2.5, yaml 3.1 -> 2.8, routing 6.0 -> 3.4, twig-bridge 6.2 -> 6.1, messenger 6.3 -> 6.2) and adds four packages that had no trigger at all (var-dumper, intl, uid, filesystem). The per-version set files stay in place and reachable through SymfonySetList and TwigSetList constants. Symfony3-8SetProvider keep empty provide(), since rector-src instantiates them by name. --- src/Set/SetProvider/Symfony3SetProvider.php | 192 +---------- src/Set/SetProvider/Symfony4SetProvider.php | 325 +------------------ src/Set/SetProvider/Symfony5SetProvider.php | 298 +----------------- src/Set/SetProvider/Symfony6SetProvider.php | 332 +------------------- src/Set/SetProvider/Symfony7SetProvider.php | 165 +--------- src/Set/SetProvider/Symfony8SetProvider.php | 47 +-- src/Set/SetProvider/SymfonySetProvider.php | 22 +- src/Set/SetProvider/TwigSetProvider.php | 42 --- 8 files changed, 56 insertions(+), 1367 deletions(-) diff --git a/src/Set/SetProvider/Symfony3SetProvider.php b/src/Set/SetProvider/Symfony3SetProvider.php index e15bfc8e5..30273fbd8 100644 --- a/src/Set/SetProvider/Symfony3SetProvider.php +++ b/src/Set/SetProvider/Symfony3SetProvider.php @@ -6,9 +6,13 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; -use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; +/** + * All the Symfony 3.x sets are now part of the composer-based set, + * where every rule is bound to the exact package version it is available from. + * + * @see \Rector\Symfony\Set\SetProvider\SymfonySetProvider + */ final class Symfony3SetProvider implements SetProviderInterface { /** @@ -16,188 +20,6 @@ final class Symfony3SetProvider implements SetProviderInterface */ public function provide(): array { - return [ - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/bridge-swift-mailer', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-bridge-swift-mailer.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/class-loader', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-class-loader.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-form.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-http-kernel.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/process', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-process.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/property-access', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-property-access.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-security.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/translation', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-translation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/twig-bundle', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-twig-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '3.0', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony30/symfony30-validator.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '3.1', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony31.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/yaml', - '3.1', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony31/symfony31-yaml.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '3.2', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony32.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '3.2', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony32/symfony32-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '3.2', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony32/symfony32-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '3.3', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony33.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '3.3', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony33/symfony33-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/debug', - '3.3', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony33/symfony33-debug.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '3.3', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony33/symfony33-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '3.3', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony33/symfony33-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '3.4', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony34.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '3.4', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony34/symfony34-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'sensio/framework-extra-bundle', - '3.4', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony34/symfony34-sensio-framework-extra-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/yaml', - '3.4', - __DIR__ . '/../../../config/sets/symfony/symfony3/symfony34/symfony34-yaml.php' - ), - ]; + return []; } } diff --git a/src/Set/SetProvider/Symfony4SetProvider.php b/src/Set/SetProvider/Symfony4SetProvider.php index c9bcdde4b..7fa53ab44 100644 --- a/src/Set/SetProvider/Symfony4SetProvider.php +++ b/src/Set/SetProvider/Symfony4SetProvider.php @@ -6,9 +6,13 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; -use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; +/** + * All the Symfony 4.x sets are now part of the composer-based set, + * where every rule is bound to the exact package version it is available from. + * + * @see \Rector\Symfony\Set\SetProvider\SymfonySetProvider + */ final class Symfony4SetProvider implements SetProviderInterface { /** @@ -16,321 +20,6 @@ final class Symfony4SetProvider implements SetProviderInterface */ public function provide(): array { - return [ - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '4.0', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony40.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '4.0', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony40/symfony40-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/process', - '4.0', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony40/symfony40-process.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '4.0', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony40/symfony40-validator.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/var-dumper', - '4.0', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony40/symfony40-var-dumper.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '4.0', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony40/symfony40-form.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '4.1', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony41.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '4.1', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony41/symfony41-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '4.1', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony41/symfony41-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '4.1', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony41/symfony41-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/workflow', - '4.1', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony41/symfony41-workflow.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-http-kernel.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/monolog-bridge', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-monolog-bridge.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/cache', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-cache.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/config', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-config.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dom-crawler', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-dom-crawler.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-form.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/finder', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-finder.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/process', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-process.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-serializer.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/translation', - '4.2', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony42/symfony42-translation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/workflow', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-workflow.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/browser-kit', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-browser-kit.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/cache', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-cache.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/event-dispatcher', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-event-dispatcher.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-http-kernel.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/intl', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-intl.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-security-core.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-http', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-security-http.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/twig-bundle', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-twig-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/workflow', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43/symfony43-workflow.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '4.3', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony43.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44/symfony44-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44/symfony44-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44/symfony44-http-kernel.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44/symfony44-security-core.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/templating', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44/symfony44-templating.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/web-link', - '4.4', - __DIR__ . '/../../../config/sets/symfony/symfony4/symfony44/symfony44-web-link.php' - ), - ]; + return []; } } diff --git a/src/Set/SetProvider/Symfony5SetProvider.php b/src/Set/SetProvider/Symfony5SetProvider.php index 8015ac740..1be11f72c 100644 --- a/src/Set/SetProvider/Symfony5SetProvider.php +++ b/src/Set/SetProvider/Symfony5SetProvider.php @@ -6,9 +6,13 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; -use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; +/** + * All the Symfony 5.x sets are now part of the composer-based set, + * where every rule is bound to the exact package version it is available from. + * + * @see \Rector\Symfony\Set\SetProvider\SymfonySetProvider + */ final class Symfony5SetProvider implements SetProviderInterface { /** @@ -16,294 +20,6 @@ final class Symfony5SetProvider implements SetProviderInterface */ public function provide(): array { - return [ - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '5.0', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony50.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '5.0', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony50/symfony50-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/debug', - '5.0', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony50/symfony50-debug.php' - ), - - // @todo handle types per package? - // __DIR__ . '/../../../config/sets/symfony/symfony5/symfony50/symfony50-types.php' - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/config', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-config.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/event-dispatcher', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-event-dispatcher.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-form.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/inflector', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-inflector.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/notifier', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-notifier.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-http', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-security-http.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '5.1', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony51/symfony51-security-core.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-dependency-injection.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-form.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-http-foundation.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/mime', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-mime.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/notifier', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-notifier.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/property-access', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-property-access.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/property-info', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-property-info.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-security-core.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-http', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-security-http.php', - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '5.2', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony52/symfony52-validator.php', - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-http-kernel.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-security-core.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-mailer', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-mailer.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-form.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '5.3', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony53/symfony53-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-validator.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-bundle', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-security-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-security-core.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-http', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-security-http.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/cache', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-cache.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-http-kernel.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/notifier', - '5.4', - __DIR__ . '/../../../config/sets/symfony/symfony5/symfony54/symfony54-notifier.php' - ), - ]; + return []; } } diff --git a/src/Set/SetProvider/Symfony6SetProvider.php b/src/Set/SetProvider/Symfony6SetProvider.php index 7fee31b79..fac46c7a0 100644 --- a/src/Set/SetProvider/Symfony6SetProvider.php +++ b/src/Set/SetProvider/Symfony6SetProvider.php @@ -6,9 +6,13 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; -use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; +/** + * All the Symfony 6.x sets are now part of the composer-based set, + * where every rule is bound to the exact package version it is available from. + * + * @see \Rector\Symfony\Set\SetProvider\SymfonySetProvider + */ final class Symfony6SetProvider implements SetProviderInterface { /** @@ -16,328 +20,6 @@ final class Symfony6SetProvider implements SetProviderInterface */ public function provide(): array { - return [ - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-dependency-injection.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/contracts', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-contracts.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/config', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-config.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-framework-bundle.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/doctrine-bridge', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-doctrine-bridge.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-security-core.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-serializer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-http', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-security-http.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-console.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/browser-kit', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-browser-kit.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-http-kernel.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-validator.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-form.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/translation', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-translation.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/property-access', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-property-access.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/property-info', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-property-info.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/routing', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-routing.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/templating', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-templating.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/event-dispatcher', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-event-dispatcher.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/expression-language', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-expression-language.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/options-resolver', - '6.0', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony60/symfony60-options-resolver.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '6.1', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony61.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '6.1', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony61/symfony61-serializer.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '6.1', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony61/symfony61-validator.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '6.1', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony61/symfony61-console.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/twig-bridge', - '6.1', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony61/symfony61-twig-bridge.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-bundle', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-security-bundle.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-http', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-security-http.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/mime', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-mime.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-kernel', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-http-kernel.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-framework-bundle.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-http-foundation.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/twig-bridge', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-twig-bridge.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/translation', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-translation.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/doctrine-bridge', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-doctrine-bridge.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/messenger', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-messenger.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/mail-pace-mailer', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-mail-pace-mailer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '6.2', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony62/symfony62-validator.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '6.3', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony63.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '6.3', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony63/symfony63-dependency-injection.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-client', - '6.3', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony63/symfony63-http-client.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/messenger', - '6.3', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony63/symfony63-messenger.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '6.3', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony63/symfony63-console.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/web-link', - '6.3', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony63/symfony63-web-link.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '6.4', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony64.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/routing', - '6.4', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony64/symfony64-routing.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/form', - '6.4', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony64/symfony64-form.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '6.4', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony64/symfony64-http-foundation.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/error-handler', - '6.4', - __DIR__ . '/../../../config/sets/symfony/symfony6/symfony64/symfony64-error-handler.php' - ), - ]; + return []; } } diff --git a/src/Set/SetProvider/Symfony7SetProvider.php b/src/Set/SetProvider/Symfony7SetProvider.php index 9756f0cbc..3c4cf1c6d 100644 --- a/src/Set/SetProvider/Symfony7SetProvider.php +++ b/src/Set/SetProvider/Symfony7SetProvider.php @@ -6,9 +6,13 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; -use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; +/** + * All the Symfony 7.x sets are now part of the composer-based set, + * where every rule is bound to the exact package version it is available from. + * + * @see \Rector\Symfony\Set\SetProvider\SymfonySetProvider + */ final class Symfony7SetProvider implements SetProviderInterface { /** @@ -16,161 +20,6 @@ final class Symfony7SetProvider implements SetProviderInterface */ public function provide(): array { - return [ - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '7.0', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony70.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '7.0', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony70/symfony70-dependency-injection.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '7.0', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony70/symfony70-serializer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '7.0', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony70/symfony70-http-foundation.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/contracts', - '7.0', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony70/symfony70-contracts.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/routing', - '7.0', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony70/symfony70-routing.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '7.1', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony71.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '7.1', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony71/symfony71-dependency-injection.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '7.1', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony71/symfony71-serializer.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '7.2', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony72.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '7.2', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony72/symfony72-serializer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/translation', - '7.2', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony72/symfony72-translation.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/mailer', - '7.2', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony72/symfony72-mailer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/http-foundation', - '7.2', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony72/symfony72-http-foundation.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '7.3', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony73.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '7.3', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony73/symfony73-console.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '7.3', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony73/symfony73-security-core.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/twig-bundle', - '7.3', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony73/symfony73-twig-bundle.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/validator', - '7.3', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony73/symfony73-validator.php' - ), - - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/symfony', - '7.4', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony74.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/console', - '7.4', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony74/symfony74-console.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/framework-bundle', - '7.4', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony74/symfony74-framework-bundle.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/routing', - '7.4', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony74/symfony74-routing.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/json-streamer', - '7.4', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony74/symfony74-json-streamer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/workflow', - '7.4', - __DIR__ . '/../../../config/sets/symfony/symfony7/symfony74/symfony74-workflow.php' - ), - ]; + return []; } } diff --git a/src/Set/SetProvider/Symfony8SetProvider.php b/src/Set/SetProvider/Symfony8SetProvider.php index 4d2ba77aa..a92d30155 100644 --- a/src/Set/SetProvider/Symfony8SetProvider.php +++ b/src/Set/SetProvider/Symfony8SetProvider.php @@ -6,9 +6,13 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; -use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; +/** + * All the Symfony 8.x sets are now part of the composer-based set, + * where every rule is bound to the exact package version it is available from. + * + * @see \Rector\Symfony\Set\SetProvider\SymfonySetProvider + */ final class Symfony8SetProvider implements SetProviderInterface { /** @@ -16,43 +20,6 @@ final class Symfony8SetProvider implements SetProviderInterface */ public function provide(): array { - return [ - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security-core', - '8.0', - __DIR__ . '/../../../config/sets/symfony/symfony8/symfony80/symfony80-security-core.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/dependency-injection', - '8.1', - __DIR__ . '/../../../config/sets/symfony/symfony8/symfony81/symfony81-dependency-injection.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/uid', - '8.1', - __DIR__ . '/../../../config/sets/symfony/symfony8/symfony81/symfony81-uid.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/serializer', - '8.1', - __DIR__ . '/../../../config/sets/symfony/symfony8/symfony81/symfony81-serializer.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/filesystem', - '8.1', - __DIR__ . '/../../../config/sets/symfony/symfony8/symfony81/symfony81-filesystem.php' - ), - new ComposerTriggeredSet( - SetGroup::SYMFONY, - 'symfony/security', - '8.1', - __DIR__ . '/../../../config/sets/symfony/symfony8/symfony81/symfony81-security.php' - ), - ]; + return []; } } diff --git a/src/Set/SetProvider/SymfonySetProvider.php b/src/Set/SetProvider/SymfonySetProvider.php index 29ad4a41b..5c38f7fee 100644 --- a/src/Set/SetProvider/SymfonySetProvider.php +++ b/src/Set/SetProvider/SymfonySetProvider.php @@ -20,22 +20,27 @@ final class SymfonySetProvider implements SetProviderInterface * @var array */ private const array COMPOSER_BASED_TRIGGER_PACKAGES = [ + // symfony/symfony is the mono-repo package, it contains every package below + 'symfony/symfony' => '>=2.5', + + 'symfony/form' => '>=2.5', + 'symfony/framework-bundle' => '>=2.5', + 'symfony/validator' => '>=2.5', + 'symfony/yaml' => '>=2.8', 'symfony/bridge-swift-mailer' => '>=3.0', 'symfony/class-loader' => '>=3.0', 'symfony/console' => '>=3.0', - 'symfony/form' => '>=3.0', 'symfony/http-kernel' => '>=3.0', 'symfony/process' => '>=3.0', 'symfony/property-access' => '>=3.0', 'symfony/security' => '>=3.0', 'symfony/translation' => '>=3.0', 'symfony/twig-bundle' => '>=3.0', - 'symfony/validator' => '>=3.0', - 'symfony/yaml' => '>=3.1', 'symfony/dependency-injection' => '>=3.2', 'symfony/http-foundation' => '>=3.2', 'symfony/debug' => '>=3.3', - 'symfony/framework-bundle' => '>=3.3', + 'symfony/routing' => '>=3.4', + 'symfony/var-dumper' => '>=4.0', 'symfony/workflow' => '>=4.1', 'symfony/cache' => '>=4.2', 'symfony/config' => '>=4.2', @@ -45,6 +50,7 @@ final class SymfonySetProvider implements SetProviderInterface 'symfony/serializer' => '>=4.2', 'symfony/browser-kit' => '>=4.3', 'symfony/event-dispatcher' => '>=4.3', + 'symfony/intl' => '>=4.3', 'symfony/security-core' => '>=4.3', 'symfony/security-http' => '>=4.3', 'symfony/templating' => '>=4.4', @@ -59,15 +65,15 @@ final class SymfonySetProvider implements SetProviderInterface 'symfony/doctrine-bridge' => '>=6.0', 'symfony/expression-language' => '>=6.0', 'symfony/options-resolver' => '>=6.0', - 'symfony/routing' => '>=6.0', + 'symfony/twig-bridge' => '>=6.1', 'symfony/mail-pace-mailer' => '>=6.2', - 'symfony/symfony' => '>=6.2', - 'symfony/twig-bridge' => '>=6.2', + 'symfony/messenger' => '>=6.2', 'symfony/http-client' => '>=6.3', - 'symfony/messenger' => '>=6.3', 'symfony/error-handler' => '>=6.4', 'symfony/mailer' => '>=7.2', 'symfony/json-streamer' => '>=7.4', + 'symfony/filesystem' => '>=8.1', + 'symfony/uid' => '>=8.1', ]; /** diff --git a/src/Set/SetProvider/TwigSetProvider.php b/src/Set/SetProvider/TwigSetProvider.php index d409c43a9..995821033 100644 --- a/src/Set/SetProvider/TwigSetProvider.php +++ b/src/Set/SetProvider/TwigSetProvider.php @@ -24,48 +24,6 @@ public function provide(): array '>=1.12', __DIR__ . '/../../../config/sets/twig/composer-based.php' ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '1.12', - __DIR__ . '/../../../config/sets/twig/twig112.php' - ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '1.27', - __DIR__ . '/../../../config/sets/twig/twig127.php' - ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '1.34', - __DIR__ . '/../../../config/sets/twig/twig134.php' - ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '1.40', - __DIR__ . '/../../../config/sets/twig/twig140.php' - ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '2.0', - __DIR__ . '/../../../config/sets/twig/twig20.php' - ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '2.4', - __DIR__ . '/../../../config/sets/twig/twig24.php' - ), - new ComposerTriggeredSet( - SetGroup::TWIG, - 'twig/twig', - '3.0', - __DIR__ . '/../../../config/sets/twig/twig30.php' - ), ]; } } From 45c88fccd7486cdcce97ede11b65869650c24b52 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 5 Aug 2026 11:15:17 +0200 Subject: [PATCH 2/3] [Sets] Register the Symfony composer-based set as a plain set Every rule inside the set already declares the package and version it needs, so the 52-entry trigger package list only duplicated that information one level up - and each new package had to be added there by hand or its rules would never run. The set is now a plain Set, listed as "Composer Based". --- src/Set/SetProvider/SymfonySetProvider.php | 88 +--------------------- 1 file changed, 3 insertions(+), 85 deletions(-) diff --git a/src/Set/SetProvider/SymfonySetProvider.php b/src/Set/SetProvider/SymfonySetProvider.php index 5c38f7fee..725d17083 100644 --- a/src/Set/SetProvider/SymfonySetProvider.php +++ b/src/Set/SetProvider/SymfonySetProvider.php @@ -7,82 +7,19 @@ use Rector\Set\Contract\SetInterface; use Rector\Set\Contract\SetProviderInterface; use Rector\Set\Enum\SetGroup; -use Rector\Set\ValueObject\ComposerTriggeredSet; use Rector\Set\ValueObject\Set; final class SymfonySetProvider implements SetProviderInterface { - /** - * The composer-based set holds rules bound to the exact Symfony package version they are available from. - * Symfony has no single package to trigger on, so every package used inside the set triggers it, - * from the lowest version its rules require. - * - * @var array - */ - private const array COMPOSER_BASED_TRIGGER_PACKAGES = [ - // symfony/symfony is the mono-repo package, it contains every package below - 'symfony/symfony' => '>=2.5', - - 'symfony/form' => '>=2.5', - 'symfony/framework-bundle' => '>=2.5', - 'symfony/validator' => '>=2.5', - 'symfony/yaml' => '>=2.8', - 'symfony/bridge-swift-mailer' => '>=3.0', - 'symfony/class-loader' => '>=3.0', - 'symfony/console' => '>=3.0', - 'symfony/http-kernel' => '>=3.0', - 'symfony/process' => '>=3.0', - 'symfony/property-access' => '>=3.0', - 'symfony/security' => '>=3.0', - 'symfony/translation' => '>=3.0', - 'symfony/twig-bundle' => '>=3.0', - 'symfony/dependency-injection' => '>=3.2', - 'symfony/http-foundation' => '>=3.2', - 'symfony/debug' => '>=3.3', - 'symfony/routing' => '>=3.4', - 'symfony/var-dumper' => '>=4.0', - 'symfony/workflow' => '>=4.1', - 'symfony/cache' => '>=4.2', - 'symfony/config' => '>=4.2', - 'symfony/dom-crawler' => '>=4.2', - 'symfony/finder' => '>=4.2', - 'symfony/monolog-bridge' => '>=4.2', - 'symfony/serializer' => '>=4.2', - 'symfony/browser-kit' => '>=4.3', - 'symfony/event-dispatcher' => '>=4.3', - 'symfony/intl' => '>=4.3', - 'symfony/security-core' => '>=4.3', - 'symfony/security-http' => '>=4.3', - 'symfony/templating' => '>=4.4', - 'symfony/web-link' => '>=4.4', - 'symfony/inflector' => '>=5.1', - 'symfony/notifier' => '>=5.1', - 'symfony/mime' => '>=5.2', - 'symfony/property-info' => '>=5.2', - 'symfony/security-mailer' => '>=5.3', - 'symfony/security-bundle' => '>=5.4', - 'symfony/contracts' => '>=6.0', - 'symfony/doctrine-bridge' => '>=6.0', - 'symfony/expression-language' => '>=6.0', - 'symfony/options-resolver' => '>=6.0', - 'symfony/twig-bridge' => '>=6.1', - 'symfony/mail-pace-mailer' => '>=6.2', - 'symfony/messenger' => '>=6.2', - 'symfony/http-client' => '>=6.3', - 'symfony/error-handler' => '>=6.4', - 'symfony/mailer' => '>=7.2', - 'symfony/json-streamer' => '>=7.4', - 'symfony/filesystem' => '>=8.1', - 'symfony/uid' => '>=8.1', - ]; - /** * @return SetInterface[] */ public function provide(): array { return [ - ...$this->provideComposerBasedSets(), + // holds rules bound to the exact Symfony package version they are available from, + // so the whole set can be run at once, no matter the Symfony version in the project + new Set(SetGroup::SYMFONY, 'Composer Based', __DIR__ . '/../../../config/sets/symfony/composer-based.php'), new Set(SetGroup::SYMFONY, 'Configs', __DIR__ . '/../../../config/sets/symfony/configs.php'), new Set( @@ -127,23 +64,4 @@ public function provide(): array ), ]; } - - /** - * @return ComposerTriggeredSet[] - */ - private function provideComposerBasedSets(): array - { - $composerTriggeredSets = []; - - foreach (self::COMPOSER_BASED_TRIGGER_PACKAGES as $packageName => $version) { - $composerTriggeredSets[] = new ComposerTriggeredSet( - SetGroup::SYMFONY, - $packageName, - $version, - __DIR__ . '/../../../config/sets/symfony/composer-based.php' - ); - } - - return $composerTriggeredSets; - } } From 59202eedc59d0ea94200476a602371abdd4ee7ac Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 5 Aug 2026 11:23:08 +0200 Subject: [PATCH 3/3] [Sets] Remove SymfonySetProvider The composer-based set is reachable through SymfonySetList::COMPOSER_BASED, which is what withComposerBased(symfony: true) uses, and the remaining sets through their SymfonySetList constants. The provider only listed them a second time. --- src/Set/SetProvider/SymfonySetProvider.php | 67 ---------------------- 1 file changed, 67 deletions(-) delete mode 100644 src/Set/SetProvider/SymfonySetProvider.php diff --git a/src/Set/SetProvider/SymfonySetProvider.php b/src/Set/SetProvider/SymfonySetProvider.php deleted file mode 100644 index 725d17083..000000000 --- a/src/Set/SetProvider/SymfonySetProvider.php +++ /dev/null @@ -1,67 +0,0 @@ -