From 031ba3d21e7de1288f34c002957f57420d36b2a5 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 6 Jun 2018 11:34:58 +0200 Subject: [PATCH 1/4] drop nette20, nette21 levels --- config/level/nette/nette20.yml | 10 ---------- config/level/nette/nette21.yml | 5 ----- 2 files changed, 15 deletions(-) delete mode 100644 config/level/nette/nette20.yml delete mode 100644 config/level/nette/nette21.yml diff --git a/config/level/nette/nette20.yml b/config/level/nette/nette20.yml deleted file mode 100644 index f1337b9bc9eb..000000000000 --- a/config/level/nette/nette20.yml +++ /dev/null @@ -1,10 +0,0 @@ -services: - Rector\Rector\Dynamic\ClassReplacerRector: - $oldToNewClasses: - 'Environment': 'Nette\Environment' - 'Image': 'Nette\Image' - 'IRouter': 'Nette\Application\IRouter' - 'IHttpRequest': 'Nette\Http\IRequest' - 'PresenterRequest': 'Nette\Application\Request' - 'Presenter': 'Nette\Application\UI\Presenter' - 'Component': 'Nette\ComponentModel\Component' diff --git a/config/level/nette/nette21.yml b/config/level/nette/nette21.yml deleted file mode 100644 index 0baab1400e58..000000000000 --- a/config/level/nette/nette21.yml +++ /dev/null @@ -1,5 +0,0 @@ -services: - Rector\Nette\Rector\Application\InjectPropertyRector: ~ - Rector\Rector\Dynamic\ClassReplacerRector: - $oldToNewClasses: - 'Nette\Config\Configurator': 'Nette\Configurator' From 710e215c9c7956202a5a38b34c6afdf17e897dfa Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 6 Jun 2018 11:59:15 +0200 Subject: [PATCH 2/4] make RemoveConfiguratorConstantsRector generic --- .../RemoveConfiguratorConstantsRector.php | 43 ++++++++++++++----- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php b/packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php index c735493520f4..1853b93b904e 100644 --- a/packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php +++ b/packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php @@ -20,14 +20,40 @@ final class RemoveConfiguratorConstantsRector extends AbstractRector */ private $nodeFactory; - public function __construct(NodeFactory $nodeFactory) - { + /** + * @var string + */ + private $oldClassConstant; + + /** + * @var string + */ + private $class; + + /** + * @var string[] + */ + private $oldConstantToNewValue = []; + + /** + * @param string[] $oldConstantToNewValue + */ + public function __construct( + NodeFactory $nodeFactory, + string $class = 'Nette\Configurator', + array $oldConstantToNewValue = [ + 'DEVELOPMENT' => 'development', + 'PRODUCTION' => 'production' + ] + ) { $this->nodeFactory = $nodeFactory; + $this->class = $class; + $this->oldConstantToNewValue = $oldConstantToNewValue; } public function getDefinition(): RectorDefinition { - return new RectorDefinition('Turns properties with @inject to private properties and constructor injection', [ + return new RectorDefinition('Replaces constant by value', [ new CodeSample('$value === Nette\Configurator::DEVELOPMENT', '$value === "development"'), ]); } @@ -40,11 +66,11 @@ public function isCandidate(Node $node): bool $className = $this->getClassNameFromClassConstFetch($node); - if ($className !== 'Nette\Configurator') { + if ($className !== $this->class) { return false; } - return in_array((string) $node->name, ['DEVELOPMENT', 'PRODUCTION'], true); + return in_array((string) $node->name, array_keys($this->oldConstantToNewValue), true); } /** @@ -52,12 +78,9 @@ public function isCandidate(Node $node): bool */ public function refactor(Node $classConstFetchNode): ?Node { - /** @var Identifier $constantName */ - $constantName = $classConstFetchNode->name; - - $originalConstantValue = $constantName->toLowerString(); + $newValue = $this->oldConstantToNewValue[$classConstFetchNode->name->toString()]; - return $this->nodeFactory->createString($originalConstantValue); + return $this->nodeFactory->createString($newValue); } private function getClassNameFromClassConstFetch(ClassConstFetch $classConstFetchNode): string From bfc50a0467b2f13e6a1f494d6da1499eca3e3f43 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 6 Jun 2018 12:00:49 +0200 Subject: [PATCH 3/4] rename RemoveConfiguratorConstantsRector to RenameClassConstantsUseToStringsRector --- ....php => RenameClassConstantsUseToStringsRector.php} | 10 ++-------- .../RemoveConfiguratorConstantsRector/config.yml | 2 -- .../Correct/correct.php.inc | 0 .../RenameClassConstantsUseToStringsRectorTest.php} | 6 +++--- .../Wrong/wrong.php.inc | 0 .../RenameClassConstantsUseToStringsRector/config.yml | 2 ++ 6 files changed, 7 insertions(+), 13 deletions(-) rename packages/Nette/src/Rector/Bootstrap/{RemoveConfiguratorConstantsRector.php => RenameClassConstantsUseToStringsRector.php} (92%) delete mode 100644 packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/config.yml rename packages/Nette/tests/Rector/Bootstrap/{RemoveConfiguratorConstantsRector => RenameClassConstantsUseToStringsRector}/Correct/correct.php.inc (100%) rename packages/Nette/tests/Rector/Bootstrap/{RemoveConfiguratorConstantsRector/RemoveConfiguratorConstantsRectorTest.php => RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php} (69%) rename packages/Nette/tests/Rector/Bootstrap/{RemoveConfiguratorConstantsRector => RenameClassConstantsUseToStringsRector}/Wrong/wrong.php.inc (100%) create mode 100644 packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/config.yml diff --git a/packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php b/packages/Nette/src/Rector/Bootstrap/RenameClassConstantsUseToStringsRector.php similarity index 92% rename from packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php rename to packages/Nette/src/Rector/Bootstrap/RenameClassConstantsUseToStringsRector.php index 1853b93b904e..71ed4784b5af 100644 --- a/packages/Nette/src/Rector/Bootstrap/RemoveConfiguratorConstantsRector.php +++ b/packages/Nette/src/Rector/Bootstrap/RenameClassConstantsUseToStringsRector.php @@ -5,7 +5,6 @@ use PhpParser\Node; use PhpParser\Node\Expr\ClassConstFetch; use PhpParser\Node\Expr\Variable; -use PhpParser\Node\Identifier; use PhpParser\Node\Name\FullyQualified; use Rector\Node\Attribute; use Rector\Node\NodeFactory; @@ -13,18 +12,13 @@ use Rector\RectorDefinition\CodeSample; use Rector\RectorDefinition\RectorDefinition; -final class RemoveConfiguratorConstantsRector extends AbstractRector +final class RenameClassConstantsUseToStringsRector extends AbstractRector { /** * @var NodeFactory */ private $nodeFactory; - /** - * @var string - */ - private $oldClassConstant; - /** * @var string */ @@ -43,7 +37,7 @@ public function __construct( string $class = 'Nette\Configurator', array $oldConstantToNewValue = [ 'DEVELOPMENT' => 'development', - 'PRODUCTION' => 'production' + 'PRODUCTION' => 'production', ] ) { $this->nodeFactory = $nodeFactory; diff --git a/packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/config.yml b/packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/config.yml deleted file mode 100644 index 3572088f8d99..000000000000 --- a/packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/config.yml +++ /dev/null @@ -1,2 +0,0 @@ -services: - Rector\Nette\Rector\Bootstrap\RemoveConfiguratorConstantsRector: ~ diff --git a/packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/Correct/correct.php.inc b/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc similarity index 100% rename from packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/Correct/correct.php.inc rename to packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc diff --git a/packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/RemoveConfiguratorConstantsRectorTest.php b/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php similarity index 69% rename from packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/RemoveConfiguratorConstantsRectorTest.php rename to packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php index 1fe9b35a3ddf..7bed8884a096 100644 --- a/packages/Nette/tests/Rector/Bootstrap/RemoveConfiguratorConstantsRector/RemoveConfiguratorConstantsRectorTest.php +++ b/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php @@ -1,14 +1,14 @@ Date: Wed, 6 Jun 2018 12:04:03 +0200 Subject: [PATCH 4/4] move RenameClassConstantsUseToStringsRector from Nette to generic Rector/Constant --- .../RenameClassConstantsUseToStringsRector/config.yml | 2 -- .../Constant}/RenameClassConstantsUseToStringsRector.php | 4 ++-- .../Correct/correct.php.inc | 0 .../RenameClassConstantsUseToStringsRectorTest.php | 4 ++-- .../Wrong/wrong.php.inc | 0 .../RenameClassConstantsUseToStringsRector/config.yml | 2 ++ 6 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/config.yml rename {packages/Nette/src/Rector/Bootstrap => src/Rector/Constant}/RenameClassConstantsUseToStringsRector.php (94%) rename {packages/Nette/tests/Rector/Bootstrap => tests/Rector/Constant}/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc (100%) rename {packages/Nette/tests/Rector/Bootstrap => tests/Rector/Constant}/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php (79%) rename {packages/Nette/tests/Rector/Bootstrap => tests/Rector/Constant}/RenameClassConstantsUseToStringsRector/Wrong/wrong.php.inc (100%) create mode 100644 tests/Rector/Constant/RenameClassConstantsUseToStringsRector/config.yml diff --git a/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/config.yml b/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/config.yml deleted file mode 100644 index 795ad06b8fff..000000000000 --- a/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/config.yml +++ /dev/null @@ -1,2 +0,0 @@ -services: - Rector\Nette\Rector\Bootstrap\RenameClassConstantsUseToStringsRector: ~ diff --git a/packages/Nette/src/Rector/Bootstrap/RenameClassConstantsUseToStringsRector.php b/src/Rector/Constant/RenameClassConstantsUseToStringsRector.php similarity index 94% rename from packages/Nette/src/Rector/Bootstrap/RenameClassConstantsUseToStringsRector.php rename to src/Rector/Constant/RenameClassConstantsUseToStringsRector.php index 71ed4784b5af..3191032df674 100644 --- a/packages/Nette/src/Rector/Bootstrap/RenameClassConstantsUseToStringsRector.php +++ b/src/Rector/Constant/RenameClassConstantsUseToStringsRector.php @@ -1,6 +1,6 @@ oldConstantToNewValue[$classConstFetchNode->name->toString()]; + $newValue = $this->oldConstantToNewValue[(string) $classConstFetchNode->name]; return $this->nodeFactory->createString($newValue); } diff --git a/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc b/tests/Rector/Constant/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc similarity index 100% rename from packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc rename to tests/Rector/Constant/RenameClassConstantsUseToStringsRector/Correct/correct.php.inc diff --git a/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php b/tests/Rector/Constant/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php similarity index 79% rename from packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php rename to tests/Rector/Constant/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php index 7bed8884a096..683cea9137cc 100644 --- a/packages/Nette/tests/Rector/Bootstrap/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php +++ b/tests/Rector/Constant/RenameClassConstantsUseToStringsRector/RenameClassConstantsUseToStringsRectorTest.php @@ -1,12 +1,12 @@