Skip to content

Commit a54c92b

Browse files
ruudkondrejmirtes
authored andcommitted
Introduce DescriptorRegistry interface
1 parent de3d49a commit a54c92b

8 files changed

+30
-18
lines changed

src/Rules/Doctrine/ORM/EntityColumnRule.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use PHPStan\Rules\RuleErrorBuilder;
1111
use PHPStan\Type\ArrayType;
1212
use PHPStan\Type\Doctrine\DescriptorNotRegisteredException;
13-
use PHPStan\Type\Doctrine\DefaultDescriptorRegistry;
13+
use PHPStan\Type\Doctrine\DescriptorRegistry;
1414
use PHPStan\Type\Doctrine\ObjectMetadataResolver;
1515
use PHPStan\Type\ErrorType;
1616
use PHPStan\Type\MixedType;
@@ -36,7 +36,7 @@ class EntityColumnRule implements Rule
3636
/** @var ObjectMetadataResolver */
3737
private $objectMetadataResolver;
3838

39-
/** @var DefaultDescriptorRegistry */
39+
/** @var DescriptorRegistry */
4040
private $descriptorRegistry;
4141

4242
/** @var ReflectionProvider */
@@ -53,7 +53,7 @@ class EntityColumnRule implements Rule
5353

5454
public function __construct(
5555
ObjectMetadataResolver $objectMetadataResolver,
56-
DefaultDescriptorRegistry $descriptorRegistry,
56+
DescriptorRegistry $descriptorRegistry,
5757
ReflectionProvider $reflectionProvider,
5858
bool $reportUnknownTypes,
5959
bool $allowNullablePropertyForRequiredField,

src/Type/Doctrine/CreateQueryDynamicReturnTypeExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ final class CreateQueryDynamicReturnTypeExtension implements DynamicMethodReturn
3333
/** @var ObjectMetadataResolver */
3434
private $objectMetadataResolver;
3535

36-
/** @var DefaultDescriptorRegistry */
36+
/** @var DescriptorRegistry */
3737
private $descriptorRegistry;
3838

39-
public function __construct(ObjectMetadataResolver $objectMetadataResolver, DefaultDescriptorRegistry $descriptorRegistry)
39+
public function __construct(ObjectMetadataResolver $objectMetadataResolver, DescriptorRegistry $descriptorRegistry)
4040
{
4141
$this->objectMetadataResolver = $objectMetadataResolver;
4242
$this->descriptorRegistry = $descriptorRegistry;

src/Type/Doctrine/DefaultDescriptorRegistry.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Doctrine\DBAL\Types\Type;
66
use PHPStan\Type\Doctrine\Descriptors\DoctrineTypeDescriptor;
77

8-
class DefaultDescriptorRegistry
8+
class DefaultDescriptorRegistry implements DescriptorRegistry
99
{
1010

1111
/** @var array<class-string<Type>, DoctrineTypeDescriptor> */
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace PHPStan\Type\Doctrine;
4+
5+
use PHPStan\Type\Doctrine\Descriptors\DoctrineTypeDescriptor;
6+
7+
interface DescriptorRegistry
8+
{
9+
10+
public function get(string $type): DoctrineTypeDescriptor;
11+
12+
}

src/Type/Doctrine/DescriptorRegistryFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public function __construct(Container $container)
1717
$this->container = $container;
1818
}
1919

20-
public function createRegistry(): DefaultDescriptorRegistry
20+
public function createRegistry(): DescriptorRegistry
2121
{
2222
return new DefaultDescriptorRegistry($this->container->getServicesByTag(self::TYPE_DESCRIPTOR_TAG));
2323
}

src/Type/Doctrine/Query/QueryResultTypeWalker.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
use PHPStan\Type\Constant\ConstantStringType;
2020
use PHPStan\Type\ConstantTypeHelper;
2121
use PHPStan\Type\Doctrine\DescriptorNotRegisteredException;
22-
use PHPStan\Type\Doctrine\DefaultDescriptorRegistry;
22+
use PHPStan\Type\Doctrine\DescriptorRegistry;
2323
use PHPStan\Type\FloatType;
2424
use PHPStan\Type\GeneralizePrecision;
2525
use PHPStan\Type\IntegerRangeType;
@@ -97,7 +97,7 @@ class QueryResultTypeWalker extends SqlWalker
9797
/** @var QueryResultTypeBuilder */
9898
private $typeBuilder;
9999

100-
/** @var DefaultDescriptorRegistry */
100+
/** @var DescriptorRegistry */
101101
private $descriptorRegistry;
102102

103103
/** @var bool */
@@ -109,7 +109,7 @@ class QueryResultTypeWalker extends SqlWalker
109109
/**
110110
* @param Query<mixed> $query
111111
*/
112-
public static function walk(Query $query, QueryResultTypeBuilder $typeBuilder, DefaultDescriptorRegistry $descriptorRegistry): void
112+
public static function walk(Query $query, QueryResultTypeBuilder $typeBuilder, DescriptorRegistry $descriptorRegistry): void
113113
{
114114
$query->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, self::class);
115115
$query->setHint(self::HINT_TYPE_MAPPING, $typeBuilder);
@@ -154,11 +154,11 @@ public function __construct($query, $parserResult, array $queryComponents)
154154

155155
$descriptorRegistry = $this->query->getHint(self::HINT_DESCRIPTOR_REGISTRY);
156156

157-
if (!$descriptorRegistry instanceof DefaultDescriptorRegistry) {
157+
if (!$descriptorRegistry instanceof DescriptorRegistry) {
158158
throw new ShouldNotHappenException(sprintf(
159159
'Expected the query hint %s to contain a %s, but got a %s',
160160
self::HINT_DESCRIPTOR_REGISTRY,
161-
DefaultDescriptorRegistry::class,
161+
DescriptorRegistry::class,
162162
is_object($descriptorRegistry) ? get_class($descriptorRegistry) : gettype($descriptorRegistry)
163163
));
164164
}

src/Type/Doctrine/QueryBuilder/QueryBuilderGetQueryDynamicReturnTypeExtension.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
use PHPStan\Reflection\ParametersAcceptorSelector;
1515
use PHPStan\Rules\Doctrine\ORM\DynamicQueryBuilderArgumentException;
1616
use PHPStan\Type\Doctrine\ArgumentsProcessor;
17-
use PHPStan\Type\Doctrine\DefaultDescriptorRegistry;
17+
use PHPStan\Type\Doctrine\DescriptorRegistry;
1818
use PHPStan\Type\Doctrine\DoctrineTypeUtils;
1919
use PHPStan\Type\Doctrine\ObjectMetadataResolver;
2020
use PHPStan\Type\Doctrine\Query\QueryResultTypeBuilder;
@@ -62,7 +62,7 @@ class QueryBuilderGetQueryDynamicReturnTypeExtension implements DynamicMethodRet
6262
/** @var string|null */
6363
private $queryBuilderClass;
6464

65-
/** @var DefaultDescriptorRegistry */
65+
/** @var DescriptorRegistry */
6666
private $descriptorRegistry;
6767

6868
/** @var OtherMethodQueryBuilderParser */
@@ -72,7 +72,7 @@ public function __construct(
7272
ObjectMetadataResolver $objectMetadataResolver,
7373
ArgumentsProcessor $argumentsProcessor,
7474
?string $queryBuilderClass,
75-
DefaultDescriptorRegistry $descriptorRegistry,
75+
DescriptorRegistry $descriptorRegistry,
7676
OtherMethodQueryBuilderParser $otherMethodQueryBuilderParser
7777
)
7878
{

tests/Type/Doctrine/Query/QueryResultTypeWalkerTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
use PHPStan\Type\Constant\ConstantIntegerType;
1818
use PHPStan\Type\Constant\ConstantStringType;
1919
use PHPStan\Type\ConstantTypeHelper;
20-
use PHPStan\Type\Doctrine\DefaultDescriptorRegistry;
20+
use PHPStan\Type\Doctrine\DescriptorRegistry;
2121
use PHPStan\Type\FloatType;
2222
use PHPStan\Type\IntegerRangeType;
2323
use PHPStan\Type\IntegerType;
@@ -58,7 +58,7 @@ final class QueryResultTypeWalkerTest extends PHPStanTestCase
5858
/** @var EntityManagerInterface */
5959
private static $em;
6060

61-
/** @var DefaultDescriptorRegistry */
61+
/** @var DescriptorRegistry */
6262
private $descriptorRegistry;
6363

6464
public static function getAdditionalConfigFiles(): array
@@ -184,7 +184,7 @@ public static function tearDownAfterClass(): void
184184

185185
public function setUp(): void
186186
{
187-
$this->descriptorRegistry = self::getContainer()->getByType(DefaultDescriptorRegistry::class);
187+
$this->descriptorRegistry = self::getContainer()->getByType(DescriptorRegistry::class);
188188
}
189189

190190
/** @dataProvider getTestData */

0 commit comments

Comments
 (0)