1818use Rector \Contract \Rector \RectorInterface ;
1919use Rector \Doctrine \Set \DoctrineSetList ;
2020use Rector \Exception \Configuration \InvalidConfigurationException ;
21- use Rector \Php \PhpVersionResolver \ProjectComposerJsonPhpVersionResolver ;
21+ use Rector \Php \PhpVersionResolver \ComposerJsonPhpVersionResolver ;
2222use Rector \PHPUnit \Set \PHPUnitSetList ;
2323use Rector \Set \Enum \SetGroup ;
2424use Rector \Set \SetManager ;
2525use Rector \Set \ValueObject \DowngradeLevelSetList ;
26- use Rector \Set \ValueObject \LevelSetList ;
2726use Rector \Set \ValueObject \SetList ;
2827use Rector \Symfony \Set \FOSRestSetList ;
2928use Rector \Symfony \Set \JMSSetList ;
@@ -505,53 +504,49 @@ public function withPhpSets(
505504 }
506505
507506 if ($ pickedArguments === []) {
508- // use composer.json PHP version
509- $ projectComposerJsonFilePath = getcwd () . '/composer.json ' ;
510- if (file_exists ($ projectComposerJsonFilePath )) {
511- $ projectPhpVersion = ProjectComposerJsonPhpVersionResolver::resolve ($ projectComposerJsonFilePath );
512- if (is_int ($ projectPhpVersion )) {
513- $ this ->sets [] = PhpLevelSetResolver::resolveFromPhpVersion ($ projectPhpVersion );
514-
515- return $ this ;
516- }
517- }
507+ $ projectPhpVersion = ComposerJsonPhpVersionResolver::resolveFromCwdOrFail ();
508+ $ phpLevelSets = PhpLevelSetResolver::resolveFromPhpVersion ($ projectPhpVersion );
518509
519- throw new InvalidConfigurationException (sprintf (
520- 'We could not find local "composer.json" to determine your PHP version.%sPlease, fill the PHP version set in withPhpSets() manually. ' ,
521- PHP_EOL
522- ));
510+ $ this ->sets = array_merge ($ this ->sets , $ phpLevelSets );
511+
512+ return $ this ;
523513 }
524514
525515 if ($ php53 ) {
526- $ this -> sets [] = LevelSetList:: UP_TO_PHP_53 ;
516+ $ targetPhpVersion = PhpVersion:: PHP_53 ;
527517 } elseif ($ php54 ) {
528- $ this -> sets [] = LevelSetList:: UP_TO_PHP_54 ;
518+ $ targetPhpVersion = PhpVersion:: PHP_54 ;
529519 } elseif ($ php55 ) {
530- $ this -> sets [] = LevelSetList:: UP_TO_PHP_55 ;
520+ $ targetPhpVersion = PhpVersion:: PHP_55 ;
531521 } elseif ($ php56 ) {
532- $ this -> sets [] = LevelSetList:: UP_TO_PHP_56 ;
522+ $ targetPhpVersion = PhpVersion:: PHP_56 ;
533523 } elseif ($ php70 ) {
534- $ this -> sets [] = LevelSetList:: UP_TO_PHP_70 ;
524+ $ targetPhpVersion = PhpVersion:: PHP_70 ;
535525 } elseif ($ php71 ) {
536- $ this -> sets [] = LevelSetList:: UP_TO_PHP_71 ;
526+ $ targetPhpVersion = PhpVersion:: PHP_71 ;
537527 } elseif ($ php72 ) {
538- $ this -> sets [] = LevelSetList:: UP_TO_PHP_72 ;
528+ $ targetPhpVersion = PhpVersion:: PHP_72 ;
539529 } elseif ($ php73 ) {
540- $ this -> sets [] = LevelSetList:: UP_TO_PHP_73 ;
530+ $ targetPhpVersion = PhpVersion:: PHP_73 ;
541531 } elseif ($ php74 ) {
542- $ this -> sets [] = LevelSetList:: UP_TO_PHP_74 ;
532+ $ targetPhpVersion = PhpVersion:: PHP_74 ;
543533 } elseif ($ php80 ) {
544- $ this -> sets [] = LevelSetList:: UP_TO_PHP_80 ;
534+ $ targetPhpVersion = PhpVersion:: PHP_80 ;
545535 } elseif ($ php81 ) {
546- $ this -> sets [] = LevelSetList:: UP_TO_PHP_81 ;
536+ $ targetPhpVersion = PhpVersion:: PHP_81 ;
547537 } elseif ($ php82 ) {
548- $ this -> sets [] = LevelSetList:: UP_TO_PHP_82 ;
538+ $ targetPhpVersion = PhpVersion:: PHP_82 ;
549539 } elseif ($ php83 ) {
550- $ this -> sets [] = LevelSetList:: UP_TO_PHP_83 ;
540+ $ targetPhpVersion = PhpVersion:: PHP_83 ;
551541 } elseif ($ php84 ) {
552- $ this ->sets [] = LevelSetList::UP_TO_PHP_84 ;
542+ $ targetPhpVersion = PhpVersion::PHP_84 ;
543+ } else {
544+ throw new InvalidConfigurationException ('Invalid PHP version set ' );
553545 }
554546
547+ $ phpLevelSets = PhpLevelSetResolver::resolveFromPhpVersion ($ targetPhpVersion );
548+ $ this ->sets = array_merge ($ this ->sets , $ phpLevelSets );
549+
555550 return $ this ;
556551 }
557552
@@ -561,55 +556,64 @@ public function withPhpSets(
561556 */
562557 public function withPhp53Sets (): self
563558 {
564- $ this ->sets [] = LevelSetList::UP_TO_PHP_53 ;
559+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_53 ));
560+
565561 return $ this ;
566562 }
567563
568564 public function withPhp54Sets (): self
569565 {
570- $ this ->sets [] = LevelSetList::UP_TO_PHP_54 ;
566+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_54 ));
567+
571568 return $ this ;
572569 }
573570
574571 public function withPhp55Sets (): self
575572 {
576- $ this ->sets [] = LevelSetList::UP_TO_PHP_55 ;
573+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_55 ));
574+
577575 return $ this ;
578576 }
579577
580578 public function withPhp56Sets (): self
581579 {
582- $ this ->sets [] = LevelSetList::UP_TO_PHP_56 ;
580+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_56 ));
581+
583582 return $ this ;
584583 }
585584
586585 public function withPhp70Sets (): self
587586 {
588- $ this ->sets [] = LevelSetList::UP_TO_PHP_70 ;
587+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_70 ));
588+
589589 return $ this ;
590590 }
591591
592592 public function withPhp71Sets (): self
593593 {
594- $ this ->sets [] = LevelSetList::UP_TO_PHP_71 ;
594+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_71 ));
595+
595596 return $ this ;
596597 }
597598
598599 public function withPhp72Sets (): self
599600 {
600- $ this ->sets [] = LevelSetList::UP_TO_PHP_72 ;
601+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_72 ));
602+
601603 return $ this ;
602604 }
603605
604606 public function withPhp73Sets (): self
605607 {
606- $ this ->sets [] = LevelSetList::UP_TO_PHP_73 ;
608+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_73 ));
609+
607610 return $ this ;
608611 }
609612
610613 public function withPhp74Sets (): self
611614 {
612- $ this ->sets [] = LevelSetList::UP_TO_PHP_74 ;
615+ $ this ->sets = array_merge ($ this ->sets , PhpLevelSetResolver::resolveFromPhpVersion (PhpVersion::PHP_74 ));
616+
613617 return $ this ;
614618 }
615619
0 commit comments