move MultipleClassFileToPsr4ClassesRector to PSR4

This commit is contained in:
TomasVotruba 2020-05-10 00:05:46 +02:00
parent 28c18eb663
commit f63e4424b8
42 changed files with 162 additions and 158 deletions

View File

@ -219,7 +219,7 @@
"rules/autodiscovery/tests/Rector/FileSystem/MoveServicesBySuffixToDirectoryRector/Expected",
"rules/cakephp/tests/Rector/StaticCall/AppUsesStaticCallToUseStatementRector/Source",
"tests/Source",
"tests/Rector/Psr4/MultipleClassFileToPsr4ClassesRector/Source",
"rules/psr4/tests/Rector/MultipleClassFileToPsr4ClassesRector/Source",
"tests/Rector/Namespace_/PseudoNamespaceToNamespaceRector/Source",
"tests/Issues/Issue1243/Source"
],

View File

@ -1,2 +1,3 @@
services:
Rector\PSR4\Rector\Namespace_\NormalizeNamespaceByPSR4ComposerAutoloadRector: null
Rector\PSR4\Rector\MultipleClassFileToPsr4ClassesRector: null

View File

@ -6225,6 +6225,36 @@ Add response content to response code assert, so it is easier to debug
## PSR4
### `MultipleClassFileToPsr4ClassesRector`
- class: [`Rector\PSR4\Rector\MultipleClassFileToPsr4ClassesRector`](/../master/rules/psr4/src/Rector/MultipleClassFileToPsr4ClassesRector.php)
Turns namespaced classes in one file to standalone PSR-4 classes.
```diff
+// new file: "app/Exceptions/FirstException.php"
namespace App\Exceptions;
use Exception;
final class FirstException extends Exception
{
}
+
+// new file: "app/Exceptions/SecondException.php"
+namespace App\Exceptions;
+
+use Exception;
final class SecondException extends Exception
{
}
```
<br>
### `NormalizeNamespaceByPSR4ComposerAutoloadRector`
- class: [`Rector\PSR4\Rector\Namespace_\NormalizeNamespaceByPSR4ComposerAutoloadRector`](/../master/rules/psr4/src/Rector/Namespace_/NormalizeNamespaceByPSR4ComposerAutoloadRector.php)
@ -10913,36 +10943,6 @@ services:
<br>
### `MultipleClassFileToPsr4ClassesRector`
- class: [`Rector\Core\Rector\Psr4\MultipleClassFileToPsr4ClassesRector`](/../master/src/Rector/Psr4/MultipleClassFileToPsr4ClassesRector.php)
Turns namespaced classes in one file to standalone PSR-4 classes.
```diff
+// new file: "app/Exceptions/FirstException.php"
namespace App\Exceptions;
use Exception;
final class FirstException extends Exception
{
}
+
+// new file: "app/Exceptions/SecondException.php"
+namespace App\Exceptions;
+
+use Exception;
final class SecondException extends Exception
{
}
```
<br>
### `NewObjectToFactoryCreateRector`
- class: [`Rector\Core\Rector\Architecture\Factory\NewObjectToFactoryCreateRector`](/../master/src/Rector/Architecture/Factory/NewObjectToFactoryCreateRector.php)

View File

@ -149,6 +149,9 @@ abstract class AbstractFileSystemRector implements FileSystemRectorInterface
{
$nodes = $this->postFileProcessor->traverse($nodes);
// re-index keys from 0
$nodes = array_values($nodes);
// 1. if nodes are the same, prefer format preserving printer
try {
$dummyLexer = new Lexer();

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Core\Rector\Psr4;
namespace Rector\PSR4\Rector;
use PhpParser\Node;
use PhpParser\Node\Stmt;
@ -16,7 +16,7 @@ use Rector\FileSystemRector\Rector\AbstractFileSystemRector;
use Symplify\SmartFileSystem\SmartFileInfo;
/**
* @see \Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\MultipleClassFileToPsr4ClassesRectorTest
* @see \Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\MultipleClassFileToPsr4ClassesRectorTest
*/
final class MultipleClassFileToPsr4ClassesRector extends AbstractFileSystemRector
{

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class FirstException
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
final class Miss
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
final class MyClass
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
interface MyInterface
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
trait MyTrait
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
final class Named
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class SecondException
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class SomeClass
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class SomeClass_Exception
{
}

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class ReadyException
{
}

View File

@ -2,12 +2,12 @@
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector;
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector;
use Iterator;
use Nette\Utils\FileSystem;
use Rector\Core\Rector\Psr4\MultipleClassFileToPsr4ClassesRector;
use Rector\Core\Testing\PHPUnit\AbstractFileSystemRectorTestCase;
use Rector\PSR4\Rector\MultipleClassFileToPsr4ClassesRector;
final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemRectorTestCase
{
@ -17,6 +17,8 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
*/
public function test(string $originalFile, array $expectedExceptions, bool $shouldDeleteOriginalFile): void
{
$this->assertFileExists($originalFile);
$temporaryFilePath = $this->doTestFile($originalFile);
foreach ($expectedExceptions as $expectedExceptionLocation => $expectedFormat) {
@ -38,7 +40,7 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
public function provideData(): Iterator
{
// source: https://github.com/nette/utils/blob/798f8c1626a8e0e23116d90e588532725cce7d0e/src/Utils/exceptions.php
yield 'nette_exceptions' => [
yield [
__DIR__ . '/Source/nette-exceptions.php',
[
__DIR__ . '/Fixture/ArgumentOutOfRangeException.php' => __DIR__ . '/Expected/ArgumentOutOfRangeException.php',
@ -49,7 +51,7 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
true,
];
yield 'exceptions_data' => [
yield [
__DIR__ . '/Source/exceptions.php',
[
__DIR__ . '/Fixture/FirstException.php' => __DIR__ . '/Expected/FirstException.php',
@ -58,7 +60,7 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
true,
];
yield 'non_namespaced_psr4_file_with_one_class' => [
yield [
__DIR__ . '/Source/exceptions-without-namespace.php',
[
__DIR__ . '/Fixture/JustOneExceptionWithoutNamespace.php' => __DIR__ . '/Expected/JustOneExceptionWithoutNamespace.php',
@ -67,7 +69,7 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
true,
];
yield 'miss_named' => [
yield [
__DIR__ . '/Source/MissNamed.php',
[
__DIR__ . '/Fixture/Miss.php' => __DIR__ . '/Expected/Miss.php',
@ -76,7 +78,7 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
true,
];
yield 'class_like' => [
yield [
__DIR__ . '/Source/ClassLike.php',
[
__DIR__ . '/Fixture/MyTrait.php' => __DIR__ . '/Expected/MyTrait.php',
@ -86,7 +88,7 @@ final class MultipleClassFileToPsr4ClassesRectorTest extends AbstractFileSystemR
true,
];
yield 'provide_file_name_matching_one_class' => [
yield [
__DIR__ . '/Source/SomeClass.php',
[
__DIR__ . '/Fixture/SomeClass.php' => __DIR__ . '/Expected/SomeClass.php',

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
interface MyInterface
{

View File

@ -0,0 +1,13 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
final class Miss
{
}
final class Named
{
}

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class SomeClass
{

View File

@ -0,0 +1,9 @@
<?php
declare(strict_types=1);
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class JustOneException
{
}

View File

@ -2,7 +2,7 @@
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
final class FirstException
{

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
final class FirstException
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
final class Miss
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
final class MyClass
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
interface MyInterface
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
trait MyTrait
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
final class Named
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
final class SecondException
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
final class SomeClass
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
final class SomeClass_Exception
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
final class ReadyException
{
}

View File

@ -1,13 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
final class Miss
{
}
final class Named
{
}

View File

@ -1,9 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
final class JustOneException
{
}

View File

@ -1,2 +0,0 @@
services:
Rector\Core\Rector\Psr4\MultipleClassFileToPsr4ClassesRector: null