Skip to content

Commit ab136b4

Browse files
authored
phpstan: lvl 2 -> 3 (#1855)
1 parent 92d19dc commit ab136b4

File tree

6 files changed

+22
-6
lines changed

6 files changed

+22
-6
lines changed

phpstan.neon.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
parameters:
2-
level: 2
2+
level: 3
33
paths:
44
- src
55
- tests

src/Command/DoctrineCommand.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
use InvalidArgumentException;
1010
use Symfony\Component\Console\Command\Command;
1111

12+
use function assert;
13+
1214
/**
1315
* Base class for Doctrine console commands to extend from.
1416
*
@@ -59,6 +61,8 @@ protected function getEntityManager($name, $shardId = null)
5961
throw new InvalidArgumentException('Shards are not supported anymore using doctrine/dbal >= 3');
6062
}
6163

64+
assert($manager instanceof EntityManager);
65+
6266
return $manager;
6367
}
6468

src/DependencyInjection/Configuration.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,8 @@ private function getDbalConnectionsNode(): ArrayNodeDefinition
277277
->prototype('array');
278278
$this->configureDbalDriverNode($replicaNode);
279279

280+
assert($node instanceof ArrayNodeDefinition);
281+
280282
return $node;
281283
}
282284

@@ -822,6 +824,8 @@ private function getOrmEntityManagersNode(): ArrayNodeDefinition
822824
->end()
823825
->end();
824826

827+
assert($node instanceof ArrayNodeDefinition);
828+
825829
return $node;
826830
}
827831

@@ -850,6 +854,8 @@ private function getOrmCacheDriverNode(string $name): ArrayNodeDefinition
850854
$node->addDefaultsIfNotSet();
851855
}
852856

857+
assert($node instanceof ArrayNodeDefinition);
858+
853859
return $node;
854860
}
855861

src/Registry.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
use Doctrine\ORM\ORMException;
77
use Doctrine\Persistence\Proxy;
88
use ProxyManager\Proxy\LazyLoadingInterface;
9-
use Psr\Container\ContainerInterface;
109
use Symfony\Bridge\Doctrine\ManagerRegistry;
10+
use Symfony\Component\DependencyInjection\Container;
1111
use Symfony\Component\VarExporter\LazyObjectInterface;
1212
use Symfony\Contracts\Service\ResetInterface;
1313

@@ -23,7 +23,7 @@ class Registry extends ManagerRegistry implements ResetInterface
2323
* @param string[] $connections
2424
* @param string[] $entityManagers
2525
*/
26-
public function __construct(ContainerInterface $container, array $connections, array $entityManagers, string $defaultConnection, string $defaultEntityManager)
26+
public function __construct(Container $container, array $connections, array $entityManagers, string $defaultConnection, string $defaultEntityManager)
2727
{
2828
$this->container = $container;
2929

src/Repository/ServiceEntityRepositoryProxy.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
*/
2828
class ServiceEntityRepositoryProxy extends EntityRepository implements ServiceEntityRepositoryInterface
2929
{
30+
/** @var EntityRepository<T> */
3031
private ?EntityRepository $repository = null;
3132

3233
/** @param class-string<T> $entityClass The class name of the entity this repository manages */
@@ -111,11 +112,13 @@ protected function getClassMetadata(): ClassMetadata
111112
return ($this->repository ??= $this->resolveRepository())->getClassMetadata();
112113
}
113114

115+
/** @phpstan-return AbstractLazyCollection<int, T>&Selectable<int, T> */
114116
public function matching(Criteria $criteria): AbstractLazyCollection&Selectable
115117
{
116118
return ($this->repository ??= $this->resolveRepository())->matching($criteria);
117119
}
118120

121+
/** @return EntityRepository<T> */
119122
private function resolveRepository(): EntityRepository
120123
{
121124
$manager = $this->registry->getManagerForClass($this->entityClass);
@@ -127,6 +130,9 @@ private function resolveRepository(): EntityRepository
127130
));
128131
}
129132

130-
return new EntityRepository($manager, $manager->getClassMetadata($this->entityClass));
133+
/** @var ClassMetadata<T> $classMetadata */
134+
$classMetadata = $manager->getClassMetadata($this->entityClass);
135+
136+
return new EntityRepository($manager, $classMetadata);
131137
}
132138
}

tests/DependencyInjection/Fixtures/Bundles/RepositoryServiceBundle/Repository/TestCustomClassRepoRepository.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Fixtures\Bundles\RepositoryServiceBundle\Repository;
44

5-
use Doctrine\ORM\EntityManager;
5+
use Doctrine\ORM\EntityManagerInterface;
66
use Doctrine\ORM\EntityRepository;
77

88
/**
@@ -11,7 +11,7 @@
1111
*/
1212
class TestCustomClassRepoRepository extends EntityRepository
1313
{
14-
public function getEntityManager(): EntityManager
14+
public function getEntityManager(): EntityManagerInterface
1515
{
1616
return parent::getEntityManager();
1717
}

0 commit comments

Comments
 (0)