[Nette 3.0] Fixes #4387 : Add ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector (#4551)

Co-authored-by: rector-bot <tomas@getrector.org>
This commit is contained in:
Abdul Malik Ikhsan 2020-11-04 11:45:10 +07:00 committed by GitHub
parent 11031629d6
commit 01092de6bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 201 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# All 600 Rectors Overview
# All 601 Rectors Overview
- [Projects](#projects)
---
@ -30,7 +30,7 @@
- [MockistaToMockery](#mockistatomockery) (2)
- [MysqlToMysqli](#mysqltomysqli) (4)
- [Naming](#naming) (11)
- [Nette](#nette) (19)
- [Nette](#nette) (20)
- [NetteCodeQuality](#nettecodequality) (6)
- [NetteKdyby](#nettekdyby) (4)
- [NetteTesterToPHPUnit](#nettetestertophpunit) (3)
@ -7868,6 +7868,21 @@ Move dependency get via `$context->getByType()` to constructor injection
<br><br>
### `ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector`
- class: [`Rector\Nette\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector`](/rules/nette/src/Rector/MethodCall/ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector.php)
- [test fixtures](/rules/nette/tests/Rector/MethodCall/ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector/Fixture)
convert `addUpload()` with 3rd argument true to `addMultiUpload()`
```diff
$form = new Nette\Forms\Form();
-$form->addUpload('...', '...', true);
+$form->addMultiUpload('...', '...');
```
<br><br>
### `EndsWithFunctionToNetteUtilsStringsRector`
- class: [`Rector\Nette\Rector\Identical\EndsWithFunctionToNetteUtilsStringsRector`](/rules/nette/src/Rector/Identical/EndsWithFunctionToNetteUtilsStringsRector.php)

View File

@ -0,0 +1,72 @@
<?php
declare(strict_types=1);
namespace Rector\Nette\Rector\MethodCall;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Identifier;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\RectorDefinition\CodeSample;
use Rector\Core\RectorDefinition\RectorDefinition;
/**
* @see \Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRectorTest
*/
final class ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector extends AbstractRector
{
public function getDefinition(): RectorDefinition
{
return new RectorDefinition('convert addUpload() with 3rd argument true to addMultiUpload()', [
new CodeSample(
<<<'CODE_SAMPLE'
$form = new Nette\Forms\Form();
$form->addUpload('...', '...', true);
CODE_SAMPLE
,
<<<'CODE_SAMPLE'
$form = new Nette\Forms\Form();
$form->addMultiUpload('...', '...');
CODE_SAMPLE
),
]);
}
/**
* @return string[]
*/
public function getNodeTypes(): array
{
return [MethodCall::class];
}
/**
* @param MethodCall $node
*/
public function refactor(Node $node): ?Node
{
if (! $this->isObjectType($node->var, 'Nette\Forms\Form')) {
return null;
}
if (! $this->isName($node->name, 'addUpload')) {
return null;
}
$args = $node->args;
if (! isset($args[2])) {
return null;
}
if ($this->isTrue($node->args[2]->value)) {
$node->name = new Identifier('addMultiUpload');
unset($node->args[2]);
return $node;
}
return null;
}
}

View File

@ -0,0 +1,31 @@
<?php
declare(strict_types=1);
namespace Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector;
use Iterator;
use Rector\Nette\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector;
use Rector\Testing\PHPUnit\AbstractRectorTestCase;
use Symplify\SmartFileSystem\SmartFileInfo;
final class ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRectorTest extends AbstractRectorTestCase
{
/**
* @dataProvider provideData()
*/
public function test(SmartFileInfo $fileInfo): void
{
$this->doTestFileInfo($fileInfo);
}
public function provideData(): Iterator
{
return $this->yieldFilesFromDirectory(__DIR__ . '/Fixture');
}
protected function getRectorClass(): string
{
return ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector::class;
}
}

View File

@ -0,0 +1,33 @@
<?php
namespace Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector\Fixture;
use Nette\Forms\Form;
final class SomeClass
{
public function upload()
{
$form = new Form();
$form->addUpload('a', 'a', true);
}
}
?>
-----
<?php
namespace Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector\Fixture;
use Nette\Forms\Form;
final class SomeClass
{
public function upload()
{
$form = new Form();
$form->addMultiUpload('a', 'a');
}
}
?>

View File

@ -0,0 +1,16 @@
<?php
namespace Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector\Fixture;
use Nette\Forms\Form;
final class SkipSomeClass
{
public function upload()
{
$form = new Form();
$form->addUpload('a', 'a');
}
}
?>

View File

@ -0,0 +1,16 @@
<?php
namespace Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector\Fixture;
use DateTime;
final class SkipSomeClass2
{
public function run()
{
$d = new DateTime('now');
$d->format('Y-m-d');
}
}
?>

View File

@ -0,0 +1,16 @@
<?php
namespace Rector\Nette\Tests\Rector\MethodCall\ConvertAddUploadWithThirdArgumentTrueToAddMultiUploadRector\Fixture;
use Nette\Forms\Form;
final class SkipSomeClass3
{
public function upload()
{
$form = new Form();
$form->setHtmlAttribute('a', 'a');
}
}
?>