mirror of https://github.com/rectorphp/rector.git
move core architecture to own set
This commit is contained in:
parent
8512859813
commit
09cf6f8a4a
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Compiler\Console;
|
||||
namespace Rector\Compiler\Composer;
|
||||
|
||||
use Nette\Utils\FileSystem as NetteFileSystem;
|
||||
use Nette\Utils\Json;
|
||||
|
|
|
@ -4,11 +4,11 @@ declare(strict_types=1);
|
|||
|
||||
namespace Rector\Compiler\Console;
|
||||
|
||||
use Rector\Compiler\Composer\ComposerJsonManipulator;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Input\InputInterface;
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Symfony\Component\Console\Style\SymfonyStyle;
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
use Symfony\Component\Process\Process;
|
||||
use Symplify\PackageBuilder\Console\ShellCode;
|
||||
use Symplify\PackageBuilder\Console\Style\SymfonyStyleFactory;
|
||||
|
@ -42,7 +42,6 @@ final class CompileCommand extends Command
|
|||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->filesystem = new Filesystem();
|
||||
$this->composerJsonManipulator = $composerJsonManipulator;
|
||||
|
||||
$this->dataDir = $dataDir;
|
||||
|
|
|
@ -4,7 +4,8 @@ parameters:
|
|||
|
||||
services:
|
||||
# order matters, this needs to be first to correctly detect parent repository
|
||||
Rector\Core\Rector\Architecture\RepositoryAsService\ReplaceParentRepositoryCallsByRepositoryPropertyRector: null
|
||||
Rector\Core\Rector\Architecture\RepositoryAsService\MoveRepositoryFromParentToConstructorRector: null
|
||||
Rector\Core\Rector\Architecture\RepositoryAsService\ServiceLocatorToDIRector: null
|
||||
Rector\Architecture\Rector\Class_\MoveRepositoryFromParentToConstructorRector: null
|
||||
Rector\Architecture\Rector\MethodCall\ServiceLocatorToDIRector: null
|
||||
Rector\Architecture\Rector\MethodCall\ReplaceParentRepositoryCallsByRepositoryPropertyRector: null
|
||||
|
||||
Rector\Doctrine\Rector\Class_\RemoveRepositoryFromEntityAnnotationRector: null
|
||||
|
|
|
@ -93,6 +93,87 @@
|
|||
|
||||
<br>
|
||||
|
||||
### `MoveRepositoryFromParentToConstructorRector`
|
||||
|
||||
- class: `Rector\Architecture\Rector\Class_\MoveRepositoryFromParentToConstructorRector`
|
||||
|
||||
Turns parent EntityRepository class to constructor dependency
|
||||
|
||||
```diff
|
||||
namespace App\Repository;
|
||||
|
||||
+use App\Entity\Post;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
||||
-final class PostRepository extends EntityRepository
|
||||
+final class PostRepository
|
||||
{
|
||||
+ /**
|
||||
+ * @var \Doctrine\ORM\EntityRepository
|
||||
+ */
|
||||
+ private $repository;
|
||||
+ public function __construct(\Doctrine\ORM\EntityManager $entityManager)
|
||||
+ {
|
||||
+ $this->repository = $entityManager->getRepository(\App\Entity\Post::class);
|
||||
+ }
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### `ReplaceParentRepositoryCallsByRepositoryPropertyRector`
|
||||
|
||||
- class: `Rector\Architecture\Rector\MethodCall\ReplaceParentRepositoryCallsByRepositoryPropertyRector`
|
||||
|
||||
Handles method calls in child of Doctrine EntityRepository and moves them to "$this->repository" property.
|
||||
|
||||
```diff
|
||||
<?php
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
||||
class SomeRepository extends EntityRepository
|
||||
{
|
||||
public function someMethod()
|
||||
{
|
||||
- return $this->findAll();
|
||||
+ return $this->repository->findAll();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### `ServiceLocatorToDIRector`
|
||||
|
||||
- class: `Rector\Architecture\Rector\MethodCall\ServiceLocatorToDIRector`
|
||||
|
||||
Turns "$this->getRepository()" in Symfony Controller to constructor injection and private property access.
|
||||
|
||||
```diff
|
||||
class ProductController extends Controller
|
||||
{
|
||||
+ /**
|
||||
+ * @var ProductRepository
|
||||
+ */
|
||||
+ private $productRepository;
|
||||
+
|
||||
+ public function __construct(ProductRepository $productRepository)
|
||||
+ {
|
||||
+ $this->productRepository = $productRepository;
|
||||
+ }
|
||||
+
|
||||
public function someAction()
|
||||
{
|
||||
$entityManager = $this->getDoctrine()->getManager();
|
||||
- $entityManager->getRepository('SomethingBundle:Product')->findSomething(...);
|
||||
+ $this->productRepository->findSomething(...);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
## Autodiscovery
|
||||
|
||||
### `MoveEntitiesToEntityDirectoryRector`
|
||||
|
@ -9407,34 +9488,6 @@ services:
|
|||
|
||||
<br>
|
||||
|
||||
### `MoveRepositoryFromParentToConstructorRector`
|
||||
|
||||
- class: `Rector\Core\Rector\Architecture\RepositoryAsService\MoveRepositoryFromParentToConstructorRector`
|
||||
|
||||
Turns parent EntityRepository class to constructor dependency
|
||||
|
||||
```diff
|
||||
namespace App\Repository;
|
||||
|
||||
+use App\Entity\Post;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
||||
-final class PostRepository extends EntityRepository
|
||||
+final class PostRepository
|
||||
{
|
||||
+ /**
|
||||
+ * @var \Doctrine\ORM\EntityRepository
|
||||
+ */
|
||||
+ private $repository;
|
||||
+ public function __construct(\Doctrine\ORM\EntityManager $entityManager)
|
||||
+ {
|
||||
+ $this->repository = $entityManager->getRepository(\App\Entity\Post::class);
|
||||
+ }
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### `MultipleClassFileToPsr4ClassesRector`
|
||||
|
||||
- class: `Rector\Core\Rector\Psr4\MultipleClassFileToPsr4ClassesRector`
|
||||
|
@ -9760,29 +9813,6 @@ services:
|
|||
|
||||
<br>
|
||||
|
||||
### `ReplaceParentRepositoryCallsByRepositoryPropertyRector`
|
||||
|
||||
- class: `Rector\Core\Rector\Architecture\RepositoryAsService\ReplaceParentRepositoryCallsByRepositoryPropertyRector`
|
||||
|
||||
Handles method calls in child of Doctrine EntityRepository and moves them to "$this->repository" property.
|
||||
|
||||
```diff
|
||||
<?php
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
||||
class SomeRepository extends EntityRepository
|
||||
{
|
||||
public function someMethod()
|
||||
{
|
||||
- return $this->findAll();
|
||||
+ return $this->repository->findAll();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### `ReplaceVariableByPropertyFetchRector`
|
||||
|
||||
- class: `Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector`
|
||||
|
@ -9906,36 +9936,6 @@ services:
|
|||
|
||||
<br>
|
||||
|
||||
### `ServiceLocatorToDIRector`
|
||||
|
||||
- class: `Rector\Core\Rector\Architecture\RepositoryAsService\ServiceLocatorToDIRector`
|
||||
|
||||
Turns "$this->getRepository()" in Symfony Controller to constructor injection and private property access.
|
||||
|
||||
```diff
|
||||
class ProductController extends Controller
|
||||
{
|
||||
+ /**
|
||||
+ * @var ProductRepository
|
||||
+ */
|
||||
+ private $productRepository;
|
||||
+
|
||||
+ public function __construct(ProductRepository $productRepository)
|
||||
+ {
|
||||
+ $this->productRepository = $productRepository;
|
||||
+ }
|
||||
+
|
||||
public function someAction()
|
||||
{
|
||||
$entityManager = $this->getDoctrine()->getManager();
|
||||
- $entityManager->getRepository('SomethingBundle:Product')->findSomething(...);
|
||||
+ $this->productRepository->findSomething(...);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<br>
|
||||
|
||||
### `StaticCallToFunctionRector`
|
||||
|
||||
- class: `Rector\Core\Rector\StaticCall\StaticCallToFunctionRector`
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Rector\Architecture\RepositoryAsService;
|
||||
namespace Rector\Architecture\Rector\Class_;
|
||||
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
|
@ -20,6 +20,9 @@ use Rector\Core\RectorDefinition\RectorDefinition;
|
|||
use Rector\Doctrine\Contract\Mapper\DoctrineEntityAndRepositoryMapperInterface;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
|
||||
/**
|
||||
* @see \Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\DoctrineRepositoryAsServiceTest
|
||||
*/
|
||||
final class MoveRepositoryFromParentToConstructorRector extends AbstractRector
|
||||
{
|
||||
/**
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Rector\Architecture\RepositoryAsService;
|
||||
namespace Rector\Architecture\Rector\MethodCall;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use PhpParser\Node;
|
||||
|
@ -12,6 +12,9 @@ use Rector\Core\Rector\AbstractRector;
|
|||
use Rector\Core\RectorDefinition\CodeSample;
|
||||
use Rector\Core\RectorDefinition\RectorDefinition;
|
||||
|
||||
/**
|
||||
* @see \Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\DoctrineRepositoryAsServiceTest
|
||||
*/
|
||||
final class ReplaceParentRepositoryCallsByRepositoryPropertyRector extends AbstractRector
|
||||
{
|
||||
/**
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Rector\Architecture\RepositoryAsService;
|
||||
namespace Rector\Architecture\Rector\MethodCall;
|
||||
|
||||
use Nette\Utils\Strings;
|
||||
use PhpParser\Node;
|
||||
|
@ -21,6 +21,9 @@ use Rector\Core\RectorDefinition\RectorDefinition;
|
|||
use Rector\Doctrine\Contract\Mapper\DoctrineEntityAndRepositoryMapperInterface;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
|
||||
/**
|
||||
* @see \Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\DoctrineRepositoryAsServiceTest
|
||||
*/
|
||||
final class ServiceLocatorToDIRector extends AbstractRector
|
||||
{
|
||||
/**
|
|
@ -2,15 +2,15 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService;
|
||||
namespace Rector\Architecture\Tests\Rector\DoctrineRepositoryAsService;
|
||||
|
||||
use Iterator;
|
||||
use Rector\Core\Testing\PHPUnit\AbstractRectorTestCase;
|
||||
|
||||
/**
|
||||
* @covers \Rector\Rector\Architecture\RepositoryAsService\ReplaceParentRepositoryCallsByRepositoryPropertyRector
|
||||
* @covers \Rector\Rector\Architecture\RepositoryAsService\MoveRepositoryFromParentToConstructorRector
|
||||
* @covers \Rector\Rector\Architecture\RepositoryAsService\ServiceLocatorToDIRector
|
||||
* @covers \Rector\Architecture\Rector\MethodCall\ReplaceParentRepositoryCallsByRepositoryPropertyRector
|
||||
* @covers \Rector\Architecture\Rector\Class_\MoveRepositoryFromParentToConstructorRector
|
||||
* @covers \Rector\Architecture\Rector\MethodCall\ServiceLocatorToDIRector
|
||||
*/
|
||||
final class DoctrineRepositoryAsServiceTest extends AbstractRectorTestCase
|
||||
{
|
|
@ -1,6 +1,6 @@
|
|||
<?php
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Fixture;
|
||||
namespace Rector\Architecture\Tests\Rector\DoctrineRepositoryAsService\Fixture;
|
||||
|
||||
use Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Source\Entity\Post;
|
||||
use Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Source\SymfonyController;
|
||||
|
@ -21,7 +21,7 @@ final class PostController extends SymfonyController
|
|||
-----
|
||||
<?php
|
||||
|
||||
namespace Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Fixture;
|
||||
namespace Rector\Architecture\Tests\Rector\DoctrineRepositoryAsService\Fixture;
|
||||
|
||||
use Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Source\Entity\Post;
|
||||
use Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Source\SymfonyController;
|
|
@ -3,4 +3,4 @@ parameters:
|
|||
entity_manager_class: 'Rector\Core\Tests\Rector\Architecture\DoctrineRepositoryAsService\Source\EntityManagerClass'
|
||||
|
||||
imports:
|
||||
- { resource: '../../../../config/set/architecture/doctrine-repository-as-service.yaml' }
|
||||
- { resource: '../../../../../config/set/architecture/doctrine-repository-as-service.yaml' }
|
Loading…
Reference in New Issue