diff --git a/docs/AllRectorsOverview.md b/docs/AllRectorsOverview.md index 55aed4f877bd..e4c69191307e 100644 --- a/docs/AllRectorsOverview.md +++ b/docs/AllRectorsOverview.md @@ -1,4 +1,4 @@ -# All 367 Rectors Overview +# All 369 Rectors Overview - [Projects](#projects) - [General](#general) @@ -1235,6 +1235,7 @@ Import fully qualified names to use statements ```diff +use SomeAnother\AnotherClass; ++use DateTime; + class SomeClass { @@ -1243,6 +1244,38 @@ Import fully qualified names to use statements - return SomeAnother\AnotherClass; + return AnotherClass; } + + public function createDate() + { +- return new \DateTime(); ++ return new DateTime(); + } + } +``` + +```yaml +services: + Rector\CodingStyle\Rector\Namespace_\ImportFullyQualifiedNamesRector: + $shouldImportRootNamespaceClasses: false +``` + +↓ + +```diff ++use SomeAnother\AnotherClass; ++ + class SomeClass + { + public function create() + { +- return SomeAnother\AnotherClass; ++ return AnotherClass; + } + + public function createDate() + { + return new \DateTime(); // this remains untouched + } } ``` @@ -1369,7 +1402,7 @@ services: - class: `Rector\CodingStyle\Rector\Use_\RemoveUnusedAliasRector` -Removes unused use aliases +Removes unused use aliases. Keep annotation aliases like "Doctrine\ORM\Mapping as ORM" to keep convention format ```diff -use Symfony\Kernel as BaseKernel; @@ -1532,6 +1565,25 @@ Prefer quote that not inside the string
+### `UseIncrementAssignRector` + +- class: `Rector\CodingStyle\Rector\Assign\UseIncrementAssignRector` + +Use ++ increment instead of $var += 1. + +```diff + class SomeClass + { + public function run() + { +- $style += 1; ++ ++$style + } + } +``` + +
+ ### `VarConstantCommentRector` - class: `Rector\CodingStyle\Rector\ClassConst\VarConstantCommentRector` @@ -1983,6 +2035,26 @@ Removes method that set values that are never used
+### `RemoveUnreachableStatementRector` + +- class: `Rector\DeadCode\Rector\Stmt\RemoveUnreachableStatementRector` + +Remove unreachable statements + +```diff + class SomeClass + { + public function run() + { + return 5; +- +- $removeMe = 10; + } + } +``` + +
+ ### `RemoveUnusedDoctrineEntityMethodAndPropertyRector` - class: `Rector\DeadCode\Rector\Class_\RemoveUnusedDoctrineEntityMethodAndPropertyRector` @@ -3869,7 +3941,7 @@ Remove 0 from break and continue - class: `Rector\Php55\Rector\FuncCall\PregReplaceEModifierRector` -The /e modifier is no longer supported, use preg_replace_callback instead +The /e modifier is no longer supported, use preg_replace_callback instead ```diff class SomeClass diff --git a/docs/NodesOverview.md b/docs/NodesOverview.md index b920efe543d0..9c57df3b2352 100644 --- a/docs/NodesOverview.md +++ b/docs/NodesOverview.md @@ -917,7 +917,7 @@ if (true) { ```php ?> -feelfeel diff --git a/packages/CodingStyle/src/Rector/Namespace_/ImportFullyQualifiedNamesRector.php b/packages/CodingStyle/src/Rector/Namespace_/ImportFullyQualifiedNamesRector.php index 32912c6ae938..038667977bfe 100644 --- a/packages/CodingStyle/src/Rector/Namespace_/ImportFullyQualifiedNamesRector.php +++ b/packages/CodingStyle/src/Rector/Namespace_/ImportFullyQualifiedNamesRector.php @@ -7,6 +7,7 @@ use Rector\CodingStyle\Node\NameImporter; use Rector\Rector\AbstractRector; use Rector\RectorDefinition\CodeSample; +use Rector\RectorDefinition\ConfiguredCodeSample; use Rector\RectorDefinition\RectorDefinition; /** @@ -50,11 +51,17 @@ public function create() { return SomeAnother\AnotherClass; } + + public function createDate() + { + return new \DateTime(); + } } PHP , <<<'PHP' use SomeAnother\AnotherClass; +use DateTime; class SomeClass { @@ -62,9 +69,51 @@ public function create() { return AnotherClass; } + + public function createDate() + { + return new DateTime(); + } } PHP ), + new ConfiguredCodeSample( + <<<'PHP' +class SomeClass +{ + public function create() + { + return SomeAnother\AnotherClass; + } + + public function createDate() + { + return new \DateTime(); // this remains untouched + } +} +PHP + , + <<<'PHP' +use SomeAnother\AnotherClass; + +class SomeClass +{ + public function create() + { + return AnotherClass; + } + + public function createDate() + { + return new \DateTime(); // this remains untouched + } +} +PHP + , + [ + '$shouldImportRootNamespaceClasses' => false, + ] + ), ]); }