diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md index 531f2fc8878..d71c3c0d0fd 100644 --- a/docs/rector_rules_overview.md +++ b/docs/rector_rules_overview.md @@ -52,7 +52,7 @@ - [Privatization](#privatization) (7) -- [Removing](#removing) (5) +- [Removing](#removing) (6) - [RemovingStatic](#removingstatic) (1) @@ -6942,6 +6942,39 @@ return static function (RectorConfig $rectorConfig): void {
+### RemoveFuncCallRector + +Remove function + +:wrench: **configure it!** + +- class: [`Rector\Removing\Rector\FuncCall\RemoveFuncCallRector`](../rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php) + +```php +ruleWithConfiguration(RemoveFuncCallRector::class, [ + 'var_dump', + ]); +}; +``` + +↓ + +```diff +-$x = 'something'; +-var_dump($x); ++$x = 'something'; +``` + +
+ ### RemoveInterfacesRector Removes interfaces usage from class. diff --git a/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php b/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php new file mode 100644 index 00000000000..0eff42ca417 --- /dev/null +++ b/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php @@ -0,0 +1,71 @@ +> + */ + public function getNodeTypes() : array + { + return [Expression::class]; + } + /** + * @param Expression $node + */ + public function refactor(Node $node) : ?Node + { + $expr = $node->expr; + if (!$expr instanceof FuncCall) { + return null; + } + $this->removeNodeIfNeeded($node, $expr); + return null; + } + /** + * @param mixed[] $configuration + */ + public function configure(array $configuration) : void + { + Assert::allString($configuration); + $this->removedFunctions = $configuration; + } + private function removeNodeIfNeeded(Expression $node, FuncCall $expr) : void + { + foreach ($this->removedFunctions as $removedFunction) { + if (!$this->isName($expr->name, $removedFunction)) { + continue; + } + $this->removeNode($node); + break; + } + } +} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index a4b8995baf9..15fdb282200 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 = 'f604bf38cbb3b1053e0cec78423e82bd6e72b29d'; + public const PACKAGE_VERSION = 'ebc2e7efa17d9871cc5d9b90a81c41d504a214db'; /** * @api * @var string */ - public const RELEASE_DATE = '2023-04-09 11:39:55'; + public const RELEASE_DATE = '2023-04-10 15:15:13'; /** * @var int */ diff --git a/vendor/autoload.php b/vendor/autoload.php index 8cae64da0c7..404fe7ad66b 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 ComposerAutoloaderInit89fc8dc7efd43be062f97964d6ed76aa::getLoader(); +return ComposerAutoloaderInit396b82c5df91b4b5cc5ac3eeddf2c8e3::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 68bc39ad5c7..cfbf42d9da2 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2435,6 +2435,7 @@ return array( 'Rector\\Removing\\Rector\\Class_\\RemoveParentRector' => $baseDir . '/rules/Removing/Rector/Class_/RemoveParentRector.php', 'Rector\\Removing\\Rector\\Class_\\RemoveTraitUseRector' => $baseDir . '/rules/Removing/Rector/Class_/RemoveTraitUseRector.php', 'Rector\\Removing\\Rector\\FuncCall\\RemoveFuncCallArgRector' => $baseDir . '/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php', + 'Rector\\Removing\\Rector\\FuncCall\\RemoveFuncCallRector' => $baseDir . '/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php', 'Rector\\Removing\\ValueObject\\ArgumentRemover' => $baseDir . '/rules/Removing/ValueObject/ArgumentRemover.php', 'Rector\\Removing\\ValueObject\\RemoveFuncCallArg' => $baseDir . '/rules/Removing/ValueObject/RemoveFuncCallArg.php', 'Rector\\Renaming\\Contract\\MethodCallRenameInterface' => $baseDir . '/rules/Renaming/Contract/MethodCallRenameInterface.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index b82d5026a23..06a53bcea22 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit89fc8dc7efd43be062f97964d6ed76aa +class ComposerAutoloaderInit396b82c5df91b4b5cc5ac3eeddf2c8e3 { private static $loader; @@ -22,17 +22,17 @@ class ComposerAutoloaderInit89fc8dc7efd43be062f97964d6ed76aa return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit89fc8dc7efd43be062f97964d6ed76aa', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit396b82c5df91b4b5cc5ac3eeddf2c8e3', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); - spl_autoload_unregister(array('ComposerAutoloaderInit89fc8dc7efd43be062f97964d6ed76aa', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit396b82c5df91b4b5cc5ac3eeddf2c8e3', 'loadClassLoader')); require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit396b82c5df91b4b5cc5ac3eeddf2c8e3::getInitializer($loader)); $loader->setClassMapAuthoritative(true); $loader->register(true); - $filesToLoad = \Composer\Autoload\ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa::$files; + $filesToLoad = \Composer\Autoload\ComposerStaticInit396b82c5df91b4b5cc5ac3eeddf2c8e3::$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 2317c6d789f..3dc4ec9e4d8 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa +class ComposerStaticInit396b82c5df91b4b5cc5ac3eeddf2c8e3 { public static $files = array ( 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php', @@ -2682,6 +2682,7 @@ class ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa 'Rector\\Removing\\Rector\\Class_\\RemoveParentRector' => __DIR__ . '/../..' . '/rules/Removing/Rector/Class_/RemoveParentRector.php', 'Rector\\Removing\\Rector\\Class_\\RemoveTraitUseRector' => __DIR__ . '/../..' . '/rules/Removing/Rector/Class_/RemoveTraitUseRector.php', 'Rector\\Removing\\Rector\\FuncCall\\RemoveFuncCallArgRector' => __DIR__ . '/../..' . '/rules/Removing/Rector/FuncCall/RemoveFuncCallArgRector.php', + 'Rector\\Removing\\Rector\\FuncCall\\RemoveFuncCallRector' => __DIR__ . '/../..' . '/rules/Removing/Rector/FuncCall/RemoveFuncCallRector.php', 'Rector\\Removing\\ValueObject\\ArgumentRemover' => __DIR__ . '/../..' . '/rules/Removing/ValueObject/ArgumentRemover.php', 'Rector\\Removing\\ValueObject\\RemoveFuncCallArg' => __DIR__ . '/../..' . '/rules/Removing/ValueObject/RemoveFuncCallArg.php', 'Rector\\Renaming\\Contract\\MethodCallRenameInterface' => __DIR__ . '/../..' . '/rules/Renaming/Contract/MethodCallRenameInterface.php', @@ -3137,9 +3138,9 @@ class ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInit89fc8dc7efd43be062f97964d6ed76aa::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit396b82c5df91b4b5cc5ac3eeddf2c8e3::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit396b82c5df91b4b5cc5ac3eeddf2c8e3::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit396b82c5df91b4b5cc5ac3eeddf2c8e3::$classMap; }, null, ClassLoader::class); }