From 44595ed746eb02b1bc2a32dc5d257f7f27587468 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 19 Feb 2023 13:39:22 +0000 Subject: [PATCH] Updated Rector to commit 937bf3e28b7868d79c4679d8e1e03cfb2e366a42 https://github.com/rectorphp/rector-src/commit/937bf3e28b7868d79c4679d8e1e03cfb2e366a42 [Transform] Add MethodCallToFuncCallRector (#3391) --- docs/rector_rules_overview.md | 43 +++++++++- .../MethodCall/MethodCallToFuncCallRector.php | 79 +++++++++++++++++++ .../ValueObject/MethodCallToFuncCall.php | 41 ++++++++++ src/Application/VersionResolver.php | 4 +- src/ValueObject/Reporting/FileDiff.php | 2 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 2 + vendor/composer/autoload_real.php | 10 +-- vendor/composer/autoload_static.php | 10 ++- 9 files changed, 178 insertions(+), 15 deletions(-) create mode 100644 rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php create mode 100644 rules/Transform/ValueObject/MethodCallToFuncCall.php diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md index 0a19624fa84..8915de87d35 100644 --- a/docs/rector_rules_overview.md +++ b/docs/rector_rules_overview.md @@ -1,4 +1,4 @@ -# 413 Rules Overview +# 414 Rules Overview
@@ -62,7 +62,7 @@ - [Strict](#strict) (5) -- [Transform](#transform) (34) +- [Transform](#transform) (35) - [TypeDeclaration](#typedeclaration) (36) @@ -8305,6 +8305,45 @@ return static function (RectorConfig $rectorConfig): void {
+### MethodCallToFuncCallRector + +Change method call to function call + +:wrench: **configure it!** + +- class: [`Rector\Transform\Rector\MethodCall\MethodCallToFuncCallRector`](../rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php) + +```php +ruleWithConfiguration(MethodCallToFuncCallRector::class, [ + new MethodCallToFuncCall('SomeClass', 'render', 'view'), + ]); +}; +``` + +↓ + +```diff + final class SomeClass + { + public function show() + { +- return $this->render('some_template'); ++ return view('some_template'); + } + } +``` + +
+ ### MethodCallToMethodCallRector Change method one method from one service to a method call to in another service diff --git a/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php b/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php new file mode 100644 index 00000000000..d2c521284de --- /dev/null +++ b/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php @@ -0,0 +1,79 @@ +render('some_template'); + } +} +CODE_SAMPLE +, <<<'CODE_SAMPLE' +final class SomeClass +{ + public function show() + { + return view('some_template'); + } +} +CODE_SAMPLE +, [new MethodCallToFuncCall('SomeClass', 'render', 'view')])]); + } + /** + * @return array> + */ + public function getNodeTypes() : array + { + return [MethodCall::class]; + } + /** + * @param MethodCall $node + */ + public function refactor(Node $node) : ?Node + { + foreach ($this->methodCallsToFuncCalls as $methodCallToFuncCall) { + if (!$this->isName($node->name, $methodCallToFuncCall->getMethodName())) { + continue; + } + if (!$this->isObjectType($node->var, new ObjectType($methodCallToFuncCall->getObjectType()))) { + continue; + } + return new FuncCall(new FullyQualified($methodCallToFuncCall->getFunctionName()), $node->getArgs()); + } + return null; + } + /** + * @param mixed[] $configuration + */ + public function configure(array $configuration) : void + { + Assert::allIsInstanceOf($configuration, MethodCallToFuncCall::class); + $this->methodCallsToFuncCalls = $configuration; + } +} diff --git a/rules/Transform/ValueObject/MethodCallToFuncCall.php b/rules/Transform/ValueObject/MethodCallToFuncCall.php new file mode 100644 index 00000000000..58f13b66494 --- /dev/null +++ b/rules/Transform/ValueObject/MethodCallToFuncCall.php @@ -0,0 +1,41 @@ +objectType = $objectType; + $this->methodName = $methodName; + $this->functionName = $functionName; + } + public function getObjectType() : string + { + return $this->objectType; + } + public function getMethodName() : string + { + return $this->methodName; + } + public function getFunctionName() : string + { + return $this->functionName; + } +} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index 0aaa24b7bdd..0f7f29d001a 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -19,12 +19,12 @@ final class VersionResolver * @api * @var string */ - public const PACKAGE_VERSION = '0.15.17'; + public const PACKAGE_VERSION = '937bf3e28b7868d79c4679d8e1e03cfb2e366a42'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-02-17 19:47:24'; + public const RELEASE_DATE = '2023-02-19 13:35:05'; /** * @var int */ diff --git a/src/ValueObject/Reporting/FileDiff.php b/src/ValueObject/Reporting/FileDiff.php index c9c1a276b7d..55c22acad04 100644 --- a/src/ValueObject/Reporting/FileDiff.php +++ b/src/ValueObject/Reporting/FileDiff.php @@ -49,7 +49,7 @@ final class FileDiff implements SerializableInterface $this->diff = $diff; $this->diffConsoleFormatted = $diffConsoleFormatted; $this->rectorsWithLineChanges = $rectorsWithLineChanges; - Assert::allIsAOf($rectorsWithLineChanges, RectorWithLineChange::class); + Assert::allIsInstanceOf($rectorsWithLineChanges, RectorWithLineChange::class); } public function getDiff() : string { diff --git a/vendor/autoload.php b/vendor/autoload.php index e7dc26b2333..7362170008b 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -22,4 +22,4 @@ if (PHP_VERSION_ID < 50600) { require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInite8d170876f7751c4cbe4355e631feff5::getLoader(); +return ComposerAutoloaderInitd78efb692a2a5257dae172881335b91f::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index ce411e1be9d..10252b7ad92 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2716,6 +2716,7 @@ return array( 'Rector\\Transform\\Rector\\FunctionLike\\FileGetContentsAndJsonDecodeToStaticCallRector' => $baseDir . '/rules/Transform/Rector/FunctionLike/FileGetContentsAndJsonDecodeToStaticCallRector.php', 'Rector\\Transform\\Rector\\Isset_\\UnsetAndIssetToMethodCallRector' => $baseDir . '/rules/Transform/Rector/Isset_/UnsetAndIssetToMethodCallRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToAnotherMethodCallWithArgumentsRector' => $baseDir . '/rules/Transform/Rector/MethodCall/MethodCallToAnotherMethodCallWithArgumentsRector.php', + 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToFuncCallRector' => $baseDir . '/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToMethodCallRector' => $baseDir . '/rules/Transform/Rector/MethodCall/MethodCallToMethodCallRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToPropertyFetchRector' => $baseDir . '/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToStaticCallRector' => $baseDir . '/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php', @@ -2738,6 +2739,7 @@ return array( 'Rector\\Transform\\ValueObject\\FuncCallToStaticCall' => $baseDir . '/rules/Transform/ValueObject/FuncCallToStaticCall.php', 'Rector\\Transform\\ValueObject\\GetAndSetToMethodCall' => $baseDir . '/rules/Transform/ValueObject/GetAndSetToMethodCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToAnotherMethodCallWithArguments' => $baseDir . '/rules/Transform/ValueObject/MethodCallToAnotherMethodCallWithArguments.php', + 'Rector\\Transform\\ValueObject\\MethodCallToFuncCall' => $baseDir . '/rules/Transform/ValueObject/MethodCallToFuncCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToMethodCall' => $baseDir . '/rules/Transform/ValueObject/MethodCallToMethodCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToPropertyFetch' => $baseDir . '/rules/Transform/ValueObject/MethodCallToPropertyFetch.php', 'Rector\\Transform\\ValueObject\\MethodCallToStaticCall' => $baseDir . '/rules/Transform/ValueObject/MethodCallToStaticCall.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 44c5632ce72..54f0742791b 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInite8d170876f7751c4cbe4355e631feff5 +class ComposerAutoloaderInitd78efb692a2a5257dae172881335b91f { private static $loader; @@ -22,17 +22,17 @@ class ComposerAutoloaderInite8d170876f7751c4cbe4355e631feff5 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInite8d170876f7751c4cbe4355e631feff5', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitd78efb692a2a5257dae172881335b91f', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInite8d170876f7751c4cbe4355e631feff5', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitd78efb692a2a5257dae172881335b91f', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInite8d170876f7751c4cbe4355e631feff5::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitd78efb692a2a5257dae172881335b91f::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInite8d170876f7751c4cbe4355e631feff5::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInitd78efb692a2a5257dae172881335b91f::$files; $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 5a28fad266f..e8422397e5a 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInite8d170876f7751c4cbe4355e631feff5 +class ComposerStaticInitd78efb692a2a5257dae172881335b91f { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -2963,6 +2963,7 @@ class ComposerStaticInite8d170876f7751c4cbe4355e631feff5 'Rector\\Transform\\Rector\\FunctionLike\\FileGetContentsAndJsonDecodeToStaticCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/FunctionLike/FileGetContentsAndJsonDecodeToStaticCallRector.php', 'Rector\\Transform\\Rector\\Isset_\\UnsetAndIssetToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/Isset_/UnsetAndIssetToMethodCallRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToAnotherMethodCallWithArgumentsRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/MethodCall/MethodCallToAnotherMethodCallWithArgumentsRector.php', + 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToFuncCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/MethodCall/MethodCallToFuncCallRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToMethodCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/MethodCall/MethodCallToMethodCallRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToPropertyFetchRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/MethodCall/MethodCallToPropertyFetchRector.php', 'Rector\\Transform\\Rector\\MethodCall\\MethodCallToStaticCallRector' => __DIR__ . '/../..' . '/rules/Transform/Rector/MethodCall/MethodCallToStaticCallRector.php', @@ -2985,6 +2986,7 @@ class ComposerStaticInite8d170876f7751c4cbe4355e631feff5 'Rector\\Transform\\ValueObject\\FuncCallToStaticCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/FuncCallToStaticCall.php', 'Rector\\Transform\\ValueObject\\GetAndSetToMethodCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/GetAndSetToMethodCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToAnotherMethodCallWithArguments' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToAnotherMethodCallWithArguments.php', + 'Rector\\Transform\\ValueObject\\MethodCallToFuncCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToFuncCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToMethodCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToMethodCall.php', 'Rector\\Transform\\ValueObject\\MethodCallToPropertyFetch' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToPropertyFetch.php', 'Rector\\Transform\\ValueObject\\MethodCallToStaticCall' => __DIR__ . '/../..' . '/rules/Transform/ValueObject/MethodCallToStaticCall.php', @@ -3124,9 +3126,9 @@ class ComposerStaticInite8d170876f7751c4cbe4355e631feff5 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInite8d170876f7751c4cbe4355e631feff5::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInite8d170876f7751c4cbe4355e631feff5::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInite8d170876f7751c4cbe4355e631feff5::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitd78efb692a2a5257dae172881335b91f::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitd78efb692a2a5257dae172881335b91f::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitd78efb692a2a5257dae172881335b91f::$classMap; }, null, ClassLoader::class); }