diff --git a/composer.json b/composer.json index 73a2435439da..b6d1e1227264 100644 --- a/composer.json +++ b/composer.json @@ -161,7 +161,6 @@ "tests/Source", "tests/Rector/Psr4/MultipleClassFileToPsr4ClassesRector/Source", "tests/Rector/Namespace_/PseudoNamespaceToNamespaceRector/Source", - "stubs", "tests/Issues/Issue1243/Source", "packages/Autodiscovery/tests/Rector/FileSystem/MoveInterfacesToContractNamespaceDirectoryRector/Expected", "packages/Autodiscovery/tests/Rector/FileSystem/MoveServicesBySuffixToDirectoryRector/Expected" diff --git a/packages/Symfony/src/Rector/New_/StringToArrayArgumentProcessRector.php b/packages/Symfony/src/Rector/New_/StringToArrayArgumentProcessRector.php index b8e9c808b2e7..3a6183d2b813 100644 --- a/packages/Symfony/src/Rector/New_/StringToArrayArgumentProcessRector.php +++ b/packages/Symfony/src/Rector/New_/StringToArrayArgumentProcessRector.php @@ -17,36 +17,24 @@ use Rector\RectorDefinition\CodeSample; use Rector\RectorDefinition\RectorDefinition; use Rector\Util\RectorStrings; +use Symfony\Component\Console\Helper\ProcessHelper; +use Symfony\Component\Process\Process; /** * @see https://github.com/symfony/symfony/pull/27821/files + * * @see \Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\StringToArrayArgumentProcessRectorTest */ final class StringToArrayArgumentProcessRector extends AbstractRector { - /** - * @var string - */ - private $processClass; - - /** - * @var string - */ - private $processHelperClass; - /** * @var NodeTransformer */ private $nodeTransformer; - public function __construct( - NodeTransformer $nodeTransformer, - string $processClass = 'Symfony\Component\Process\Process', - string $processHelperClass = 'Symfony\Component\Console\Helper\ProcessHelper' - ) { + public function __construct(NodeTransformer $nodeTransformer) + { $this->nodeTransformer = $nodeTransformer; - $this->processClass = $processClass; - $this->processHelperClass = $processHelperClass; } public function getDefinition(): RectorDefinition @@ -79,11 +67,11 @@ public function getNodeTypes(): array */ public function refactor(Node $node): ?Node { - if ($this->isObjectType($node, $this->processClass)) { + if ($this->isObjectType($node, Process::class)) { return $this->processArgumentPosition($node, 0); } - if ($this->isObjectType($node, $this->processHelperClass)) { + if ($this->isObjectType($node, ProcessHelper::class)) { return $this->processArgumentPosition($node, 1); } diff --git a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture.php.inc b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture.php.inc index af3a66e5d0ee..ca94ddb09fc2 100644 --- a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture.php.inc +++ b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture.php.inc @@ -2,7 +2,7 @@ namespace Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Fixture; -use Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Source\Process; +use Symfony\Component\Process\Process; function stringToArgumentArray() { @@ -27,7 +27,7 @@ function stringToArgumentArray() namespace Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Fixture; -use Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Source\Process; +use Symfony\Component\Process\Process; function stringToArgumentArray() { diff --git a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture3.php.inc b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture3.php.inc index fc6ea03c876f..e72a353f0060 100644 --- a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture3.php.inc +++ b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/fixture3.php.inc @@ -1,6 +1,8 @@ add('q', stdClass::class); + + } +} + +interface FormBuilderInterface +{ + /** + * @param string|FormBuilderInterface $child + * @param string|null $type + */ + public function add($child, $type = null, array $options = []); +} diff --git a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/with_sprintf.php.inc b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/with_sprintf.php.inc index 2b36c88bf2f3..602be37567b5 100644 --- a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/with_sprintf.php.inc +++ b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/Fixture/with_sprintf.php.inc @@ -2,7 +2,7 @@ namespace Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Fixture; -use Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Source\Process; +use Symfony\Component\Process\Process; class WithSprintf { @@ -18,7 +18,7 @@ class WithSprintf namespace Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Fixture; -use Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Source\Process; +use Symfony\Component\Process\Process; class WithSprintf { diff --git a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/StringToArrayArgumentProcessRectorTest.php b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/StringToArrayArgumentProcessRectorTest.php index 55849e9576ba..48c48a7aa5f8 100644 --- a/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/StringToArrayArgumentProcessRectorTest.php +++ b/packages/Symfony/tests/Rector/New_/StringToArrayArgumentProcessRector/StringToArrayArgumentProcessRectorTest.php @@ -4,8 +4,6 @@ use Iterator; use Rector\Symfony\Rector\New_\StringToArrayArgumentProcessRector; -use Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Source\Process; -use Rector\Symfony\Tests\Rector\New_\StringToArrayArgumentProcessRector\Source\ProcessHelper; use Rector\Testing\PHPUnit\AbstractRectorTestCase; final class StringToArrayArgumentProcessRectorTest extends AbstractRectorTestCase @@ -21,23 +19,16 @@ public function test(string $file): void public function provideDataForTest(): Iterator { yield [__DIR__ . '/Fixture/fixture.php.inc']; - yield [__DIR__ . '/Fixture/fixture2.php.inc']; + yield [__DIR__ . '/Fixture/process_helper.php.inc']; yield [__DIR__ . '/Fixture/fixture3.php.inc']; yield [__DIR__ . '/Fixture/fixture4.php.inc']; yield [__DIR__ . '/Fixture/with_sprintf.php.inc']; yield [__DIR__ . '/Fixture/skip_anonymous_class.php.inc']; + yield [__DIR__ . '/Fixture/skip_form_add.php.inc']; } - /** - * @return mixed[] - */ - protected function getRectorsWithConfiguration(): array + protected function getRectorClass(): string { - return [ - StringToArrayArgumentProcessRector::class => [ - '$processClass' => Process::class, - '$processHelperClass' => ProcessHelper::class, - ], - ]; + return StringToArrayArgumentProcessRector::class; } } diff --git a/stubs/Symfony/Component/Console/Helper/ProcessHelper.php b/stubs/Symfony/Component/Console/Helper/ProcessHelper.php new file mode 100644 index 000000000000..2177731db1f1 --- /dev/null +++ b/stubs/Symfony/Component/Console/Helper/ProcessHelper.php @@ -0,0 +1,12 @@ +