diff --git a/src/Rector/Contrib/Nette/Application/ValidateControlRector.php b/src/Rector/Contrib/Nette/Application/ValidateControlRector.php deleted file mode 100644 index c8ccbb23eb6..00000000000 --- a/src/Rector/Contrib/Nette/Application/ValidateControlRector.php +++ /dev/null @@ -1,69 +0,0 @@ -validateControl(?$snippet) - * - * After: - * - $myControl->redrawControl(?$snippet, false); - */ -final class ValidateControlRector extends AbstractRector -{ - /** - * @var MethodCallAnalyzer - */ - private $methodCallAnalyzer; - - /** - * @var IdentifierRenamer - */ - private $identifierRenamer; - - /** - * @var NodeFactory - */ - private $nodeFactory; - - public function __construct( - MethodCallAnalyzer $methodCallAnalyzer, - IdentifierRenamer $identifierRenamer, - NodeFactory $nodeFactory - ) { - $this->methodCallAnalyzer = $methodCallAnalyzer; - $this->identifierRenamer = $identifierRenamer; - $this->nodeFactory = $nodeFactory; - } - - public function isCandidate(Node $node): bool - { - return $this->methodCallAnalyzer->isTypeAndMethod( - $node, - 'Nette\Application\UI\Control', - 'validateControl' - ); - } - - /** - * @param MethodCall $methodCallNode - */ - public function refactor(Node $methodCallNode): Node - { - $this->identifierRenamer->renameNode($methodCallNode, 'redrawControl'); - - $methodCallNode->args[0] = $methodCallNode->args[0] ?? $this->nodeFactory->createArg( - $this->nodeFactory->createNullConstant() - ); - $methodCallNode->args[1] = $this->nodeFactory->createArg($this->nodeFactory->createFalseConstant()); - - return $methodCallNode; - } -} diff --git a/src/Rector/Contrib/Nette/Application/ValidateControlRectorProvider.php b/src/Rector/Contrib/Nette/Application/ValidateControlRectorProvider.php new file mode 100644 index 00000000000..23eb13b481b --- /dev/null +++ b/src/Rector/Contrib/Nette/Application/ValidateControlRectorProvider.php @@ -0,0 +1,36 @@ +builderRectorFactory = $builderRectorFactory; + } + + /** + * Before:: + * - $myControl->validateControl(?$snippet) + * + * After: + * - $myControl->redrawControl(?$snippet, false); + */ + public function provide(): RectorInterface + { + return $this->builderRectorFactory->create() + ->matchMethodCallByType('Nette\Application\UI\Control') + ->matchMethodName('validateControl') + ->changeMethodNameTo('redrawControl') + ->addArgument(1, false); + } +} diff --git a/src/config/level/nette/nette24.yml b/src/config/level/nette/nette24.yml index 84b04d109f6..13883eb93c1 100644 --- a/src/config/level/nette/nette24.yml +++ b/src/config/level/nette/nette24.yml @@ -1,12 +1,14 @@ +services: + _defaults: + autowire: true + + Rector\Rector\Contrib\Nette\Application\ValidateControlRectorProvider: ~ + rectors: Rector\Rector\Contrib\Nette\Utils\NetteObjectToSmartTraitRector: ~ Rector\Rector\Contrib\Nette\Utils\MagicMethodRector: ~ # application - - # todo: turn to RectorProvider with fluent setup - Rector\Rector\Contrib\Nette\Application\ValidateControlRector: ~ - Rector\Rector\Contrib\Nette\Application\TemplateMagicInvokeFilterCallRector: ~ Rector\Rector\Contrib\Nette\Application\TemplateRegisterHelperRector: ~