mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-28 23:10:51 +00:00
move MultipleClassFileToPsr4ClassesRector to PSR4
This commit is contained in:
parent
28c18eb663
commit
f63e4424b8
|
@ -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"
|
||||
],
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
services:
|
||||
Rector\PSR4\Rector\Namespace_\NormalizeNamespaceByPSR4ComposerAutoloadRector: null
|
||||
Rector\PSR4\Rector\MultipleClassFileToPsr4ClassesRector: null
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
{
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class FirstException
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class Miss
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class MyClass
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
interface MyInterface
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
trait MyTrait
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class Named
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class SecondException
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class SomeClass
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class SomeClass_Exception
|
||||
{
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class ReadyException
|
||||
{
|
||||
}
|
|
@ -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',
|
|
@ -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
|
||||
{
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class Miss
|
||||
{
|
||||
}
|
||||
|
||||
final class Named
|
||||
{
|
||||
}
|
|
@ -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
|
||||
{
|
|
@ -0,0 +1,9 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\PSR4\Tests\Rector\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class JustOneException
|
||||
{
|
||||
}
|
|
@ -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
|
||||
{
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class FirstException
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class Miss
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class MyClass
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
interface MyInterface
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
trait MyTrait
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class Named
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class SecondException
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class SomeClass
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class SomeClass_Exception
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class ReadyException
|
||||
{
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Expected;
|
||||
|
||||
final class Miss
|
||||
{
|
||||
}
|
||||
|
||||
final class Named
|
||||
{
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Psr4\MultipleClassFileToPsr4ClassesRector\Source;
|
||||
|
||||
final class JustOneException
|
||||
{
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
services:
|
||||
Rector\Core\Rector\Psr4\MultipleClassFileToPsr4ClassesRector: null
|
Loading…
Reference in New Issue
Block a user