Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 0af5c68

Browse filesBrowse files
committed
feature #36790 Bump Doctrine DBAL to 2.10+ (fabpot)
This PR was merged into the 5.2-dev branch. Discussion ---------- Bump Doctrine DBAL to 2.10+ | Q | A | ------------- | --- | Branch? | master <!-- see below --> | Bug fix? | no | New feature? | yes <!-- please update src/**/CHANGELOG.md files --> | Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tickets | n/a <!-- prefix each issue number with "Fix #", if any --> | License | MIT | Doc PR | n/a Bump Doctrine DBAL to 2.10 and remove obsolete code. Commits ------- 4fe2b4d Bump min Doctrine DBAL requirement to 2.10
2 parents e00017e + 4fe2b4d commit 0af5c68
Copy full SHA for 0af5c68

File tree

12 files changed

+94
-172
lines changed
Filter options

12 files changed

+94
-172
lines changed

‎composer.json

Copy file name to clipboardExpand all lines: composer.json
+2-1Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
"doctrine/cache": "~1.6",
112112
"doctrine/collections": "~1.0",
113113
"doctrine/data-fixtures": "1.0.*",
114-
"doctrine/dbal": "~2.4",
114+
"doctrine/dbal": "^2.10",
115115
"doctrine/orm": "~2.4,>=2.4.5",
116116
"doctrine/reflection": "~1.0",
117117
"doctrine/doctrine-bundle": "^2.0",
@@ -134,6 +134,7 @@
134134
"twig/markdown-extra": "^2.12"
135135
},
136136
"conflict": {
137+
"doctrine/dbal": "<2.10",
137138
"masterminds/html5": "<2.6",
138139
"phpdocumentor/reflection-docblock": "<3.2.2",
139140
"phpdocumentor/type-resolver": "<0.3.0",

‎src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php
+22-29Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Bridge\Doctrine\Form;
1313

14-
use Doctrine\DBAL\Types\Type;
1514
use Doctrine\DBAL\Types\Types;
1615
use Doctrine\ORM\Mapping\ClassMetadataInfo;
1716
use Doctrine\ORM\Mapping\MappingException as LegacyMappingException;
@@ -29,15 +28,9 @@ class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface
2928

3029
private $cache = [];
3130

32-
private static $useDeprecatedConstants;
33-
3431
public function __construct(ManagerRegistry $registry)
3532
{
3633
$this->registry = $registry;
37-
38-
if (null === self::$useDeprecatedConstants) {
39-
self::$useDeprecatedConstants = !class_exists(Types::class);
40-
}
4134
}
4235

4336
/**
@@ -59,39 +52,39 @@ public function guessType(string $class, string $property)
5952
}
6053

6154
switch ($metadata->getTypeOfField($property)) {
62-
case self::$useDeprecatedConstants ? Type::TARRAY : Types::ARRAY:
63-
case self::$useDeprecatedConstants ? Type::SIMPLE_ARRAY : Types::SIMPLE_ARRAY:
55+
case Types::ARRAY:
56+
case Types::SIMPLE_ARRAY:
6457
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\CollectionType', [], Guess::MEDIUM_CONFIDENCE);
65-
case self::$useDeprecatedConstants ? Type::BOOLEAN : Types::BOOLEAN:
58+
case Types::BOOLEAN:
6659
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\CheckboxType', [], Guess::HIGH_CONFIDENCE);
67-
case self::$useDeprecatedConstants ? Type::DATETIME : Types::DATETIME_MUTABLE:
68-
case self::$useDeprecatedConstants ? Type::DATETIMETZ : Types::DATETIMETZ_MUTABLE:
60+
case Types::DATETIME_MUTABLE:
61+
case Types::DATETIMETZ_MUTABLE:
6962
case 'vardatetime':
7063
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\DateTimeType', [], Guess::HIGH_CONFIDENCE);
71-
case 'datetime_immutable':
72-
case 'datetimetz_immutable':
64+
case Types::DATE_IMMUTABLE:
65+
case Types::DATETIMETZ_IMMUTABLE:
7366
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\DateTimeType', ['input' => 'datetime_immutable'], Guess::HIGH_CONFIDENCE);
74-
case 'dateinterval':
67+
case Types::DATEINTERVAL:
7568
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\DateIntervalType', [], Guess::HIGH_CONFIDENCE);
76-
case self::$useDeprecatedConstants ? Type::DATE : Types::DATE_MUTABLE:
69+
case Types::DATE_MUTABLE:
7770
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\DateType', [], Guess::HIGH_CONFIDENCE);
78-
case 'date_immutable':
71+
case Types::DATE_IMMUTABLE:
7972
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\DateType', ['input' => 'datetime_immutable'], Guess::HIGH_CONFIDENCE);
80-
case self::$useDeprecatedConstants ? Type::TIME : Types::TIME_MUTABLE:
73+
case Types::TIME_MUTABLE:
8174
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\TimeType', [], Guess::HIGH_CONFIDENCE);
82-
case 'time_immutable':
75+
case Types::TIME_IMMUTABLE:
8376
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\TimeType', ['input' => 'datetime_immutable'], Guess::HIGH_CONFIDENCE);
84-
case self::$useDeprecatedConstants ? Type::DECIMAL : Types::DECIMAL:
77+
case Types::DECIMAL:
8578
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\NumberType', ['input' => 'string'], Guess::MEDIUM_CONFIDENCE);
86-
case self::$useDeprecatedConstants ? Type::FLOAT : Types::FLOAT:
79+
case Types::FLOAT:
8780
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\NumberType', [], Guess::MEDIUM_CONFIDENCE);
88-
case self::$useDeprecatedConstants ? Type::INTEGER : Types::INTEGER:
89-
case self::$useDeprecatedConstants ? Type::BIGINT : Types::BIGINT:
90-
case self::$useDeprecatedConstants ? Type::SMALLINT : Types::SMALLINT:
81+
case Types::INTEGER:
82+
case Types::BIGINT:
83+
case Types::SMALLINT:
9184
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\IntegerType', [], Guess::MEDIUM_CONFIDENCE);
92-
case self::$useDeprecatedConstants ? Type::STRING : Types::STRING:
85+
case Types::STRING:
9386
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\TextType', [], Guess::MEDIUM_CONFIDENCE);
94-
case self::$useDeprecatedConstants ? Type::TEXT : Types::TEXT:
87+
case Types::TEXT:
9588
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\TextareaType', [], Guess::MEDIUM_CONFIDENCE);
9689
default:
9790
return new TypeGuess('Symfony\Component\Form\Extension\Core\Type\TextType', [], Guess::LOW_CONFIDENCE);
@@ -114,7 +107,7 @@ public function guessRequired(string $class, string $property)
114107

115108
// Check whether the field exists and is nullable or not
116109
if (isset($classMetadata->fieldMappings[$property])) {
117-
if (!$classMetadata->isNullable($property) && (self::$useDeprecatedConstants ? Type::BOOLEAN : Types::BOOLEAN) !== $classMetadata->getTypeOfField($property)) {
110+
if (!$classMetadata->isNullable($property) && Types::BOOLEAN !== $classMetadata->getTypeOfField($property)) {
118111
return new ValueGuess(true, Guess::HIGH_CONFIDENCE);
119112
}
120113

@@ -151,7 +144,7 @@ public function guessMaxLength(string $class, string $property)
151144
return new ValueGuess($mapping['length'], Guess::HIGH_CONFIDENCE);
152145
}
153146

154-
if (\in_array($ret[0]->getTypeOfField($property), self::$useDeprecatedConstants ? [Type::DECIMAL, Type::FLOAT] : [Types::DECIMAL, Types::FLOAT])) {
147+
if (\in_array($ret[0]->getTypeOfField($property), [Types::DECIMAL, Types::FLOAT])) {
155148
return new ValueGuess(null, Guess::MEDIUM_CONFIDENCE);
156149
}
157150
}
@@ -166,7 +159,7 @@ public function guessPattern(string $class, string $property)
166159
{
167160
$ret = $this->getMetadata($class);
168161
if ($ret && isset($ret[0]->fieldMappings[$property]) && !$ret[0]->hasAssociation($property)) {
169-
if (\in_array($ret[0]->getTypeOfField($property), self::$useDeprecatedConstants ? [Type::DECIMAL, Type::FLOAT] : [Types::DECIMAL, Types::FLOAT])) {
162+
if (\in_array($ret[0]->getTypeOfField($property), [Types::DECIMAL, Types::FLOAT])) {
170163
return new ValueGuess(null, Guess::MEDIUM_CONFIDENCE);
171164
}
172165
}

‎src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/PropertyInfo/DoctrineExtractor.php
+36-42Lines changed: 36 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
namespace Symfony\Bridge\Doctrine\PropertyInfo;
1313

14-
use Doctrine\DBAL\Types\Type as DBALType;
1514
use Doctrine\DBAL\Types\Types;
1615
use Doctrine\ORM\EntityManagerInterface;
1716
use Doctrine\ORM\Mapping\ClassMetadata;
@@ -32,15 +31,10 @@ class DoctrineExtractor implements PropertyListExtractorInterface, PropertyTypeE
3231
{
3332
private $entityManager;
3433
private $classMetadataFactory;
35-
private static $useDeprecatedConstants;
3634

3735
public function __construct(EntityManagerInterface $entityManager)
3836
{
3937
$this->entityManager = $entityManager;
40-
41-
if (null === self::$useDeprecatedConstants) {
42-
self::$useDeprecatedConstants = !class_exists(Types::class);
43-
}
4438
}
4539

4640
/**
@@ -141,31 +135,31 @@ public function getTypes(string $class, string $property, array $context = [])
141135
switch ($builtinType) {
142136
case Type::BUILTIN_TYPE_OBJECT:
143137
switch ($typeOfField) {
144-
case self::$useDeprecatedConstants ? DBALType::DATE : Types::DATE_MUTABLE:
145-
case self::$useDeprecatedConstants ? DBALType::DATETIME : Types::DATETIME_MUTABLE:
146-
case self::$useDeprecatedConstants ? DBALType::DATETIMETZ : Types::DATETIMETZ_MUTABLE:
138+
case Types::DATE_MUTABLE:
139+
case Types::DATETIME_MUTABLE:
140+
case Types::DATETIMETZ_MUTABLE:
147141
case 'vardatetime':
148-
case self::$useDeprecatedConstants ? DBALType::TIME : Types::TIME_MUTABLE:
142+
case Types::TIME_MUTABLE:
149143
return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, 'DateTime')];
150144

151-
case 'date_immutable':
152-
case 'datetime_immutable':
153-
case 'datetimetz_immutable':
154-
case 'time_immutable':
145+
case Types::DATE_IMMUTABLE:
146+
case Types::DATETIME_IMMUTABLE:
147+
case Types::DATETIMETZ_IMMUTABLE:
148+
case Types::TIME_IMMUTABLE:
155149
return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, 'DateTimeImmutable')];
156150

157-
case 'dateinterval':
151+
case Types::DATEINTERVAL:
158152
return [new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, 'DateInterval')];
159153
}
160154

161155
break;
162156
case Type::BUILTIN_TYPE_ARRAY:
163157
switch ($typeOfField) {
164-
case self::$useDeprecatedConstants ? DBALType::TARRAY : Types::ARRAY:
165-
case 'json_array':
158+
case Types::ARRAY:
159+
case Types::JSON_ARRAY:
166160
return [new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true)];
167161

168-
case self::$useDeprecatedConstants ? DBALType::SIMPLE_ARRAY : Types::SIMPLE_ARRAY:
162+
case Types::SIMPLE_ARRAY:
169163
return [new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true, new Type(Type::BUILTIN_TYPE_INT), new Type(Type::BUILTIN_TYPE_STRING))];
170164
}
171165
}
@@ -240,43 +234,43 @@ private function isAssociationNullable(array $associationMapping): bool
240234
private function getPhpType(string $doctrineType): ?string
241235
{
242236
switch ($doctrineType) {
243-
case self::$useDeprecatedConstants ? DBALType::SMALLINT : Types::SMALLINT:
244-
case self::$useDeprecatedConstants ? DBALType::INTEGER : Types::INTEGER:
237+
case Types::SMALLINT:
238+
case Types::INTEGER:
245239
return Type::BUILTIN_TYPE_INT;
246240

247-
case self::$useDeprecatedConstants ? DBALType::FLOAT : Types::FLOAT:
241+
case Types::FLOAT:
248242
return Type::BUILTIN_TYPE_FLOAT;
249243

250-
case self::$useDeprecatedConstants ? DBALType::BIGINT : Types::BIGINT:
251-
case self::$useDeprecatedConstants ? DBALType::STRING : Types::STRING:
252-
case self::$useDeprecatedConstants ? DBALType::TEXT : Types::TEXT:
253-
case self::$useDeprecatedConstants ? DBALType::GUID : Types::GUID:
254-
case self::$useDeprecatedConstants ? DBALType::DECIMAL : Types::DECIMAL:
244+
case Types::BIGINT:
245+
case Types::STRING:
246+
case Types::TEXT:
247+
case Types::GUID:
248+
case Types::DECIMAL:
255249
return Type::BUILTIN_TYPE_STRING;
256250

257-
case self::$useDeprecatedConstants ? DBALType::BOOLEAN : Types::BOOLEAN:
251+
case Types::BOOLEAN:
258252
return Type::BUILTIN_TYPE_BOOL;
259253

260-
case self::$useDeprecatedConstants ? DBALType::BLOB : Types::BLOB:
261-
case 'binary':
254+
case Types::BLOB:
255+
case Types::BINARY:
262256
return Type::BUILTIN_TYPE_RESOURCE;
263257

264-
case self::$useDeprecatedConstants ? DBALType::OBJECT : Types::OBJECT:
265-
case self::$useDeprecatedConstants ? DBALType::DATE : Types::DATE_MUTABLE:
266-
case self::$useDeprecatedConstants ? DBALType::DATETIME : Types::DATETIME_MUTABLE:
267-
case self::$useDeprecatedConstants ? DBALType::DATETIMETZ : Types::DATETIMETZ_MUTABLE:
258+
case Types::OBJECT:
259+
case Types::DATE_MUTABLE:
260+
case Types::DATETIME_MUTABLE:
261+
case Types::DATETIMETZ_MUTABLE:
268262
case 'vardatetime':
269-
case self::$useDeprecatedConstants ? DBALType::TIME : Types::TIME_MUTABLE:
270-
case 'date_immutable':
271-
case 'datetime_immutable':
272-
case 'datetimetz_immutable':
273-
case 'time_immutable':
274-
case 'dateinterval':
263+
case Types::TIME_MUTABLE:
264+
case Types::DATE_IMMUTABLE:
265+
case Types::DATETIME_IMMUTABLE:
266+
case Types::DATETIMETZ_IMMUTABLE:
267+
case Types::TIME_IMMUTABLE:
268+
case Types::DATEINTERVAL:
275269
return Type::BUILTIN_TYPE_OBJECT;
276270

277-
case self::$useDeprecatedConstants ? DBALType::TARRAY : Types::ARRAY:
278-
case self::$useDeprecatedConstants ? DBALType::SIMPLE_ARRAY : Types::SIMPLE_ARRAY:
279-
case 'json_array':
271+
case Types::ARRAY:
272+
case Types::SIMPLE_ARRAY:
273+
case Types::JSON_ARRAY:
280274
return Type::BUILTIN_TYPE_ARRAY;
281275
}
282276

‎src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Security/RememberMe/DoctrineTokenProvider.php
+2-9Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
namespace Symfony\Bridge\Doctrine\Security\RememberMe;
1313

1414
use Doctrine\DBAL\Connection;
15-
use Doctrine\DBAL\Types\Type;
1615
use Doctrine\DBAL\Types\Types;
1716
use Symfony\Component\Security\Core\Authentication\RememberMe\PersistentToken;
1817
use Symfony\Component\Security\Core\Authentication\RememberMe\PersistentTokenInterface;
@@ -41,15 +40,9 @@ class DoctrineTokenProvider implements TokenProviderInterface
4140
{
4241
private $conn;
4342

44-
private static $useDeprecatedConstants;
45-
4643
public function __construct(Connection $conn)
4744
{
4845
$this->conn = $conn;
49-
50-
if (null === self::$useDeprecatedConstants) {
51-
self::$useDeprecatedConstants = !class_exists(Types::class);
52-
}
5346
}
5447

5548
/**
@@ -97,7 +90,7 @@ public function updateToken(string $series, string $tokenValue, \DateTime $lastU
9790
];
9891
$paramTypes = [
9992
'value' => \PDO::PARAM_STR,
100-
'lastUsed' => self::$useDeprecatedConstants ? Type::DATETIME : Types::DATETIME_MUTABLE,
93+
'lastUsed' => Types::DATETIME_MUTABLE,
10194
'series' => \PDO::PARAM_STR,
10295
];
10396
$updated = $this->conn->executeUpdate($sql, $paramValues, $paramTypes);
@@ -126,7 +119,7 @@ public function createNewToken(PersistentTokenInterface $token)
126119
'username' => \PDO::PARAM_STR,
127120
'series' => \PDO::PARAM_STR,
128121
'value' => \PDO::PARAM_STR,
129-
'lastUsed' => self::$useDeprecatedConstants ? Type::DATETIME : Types::DATETIME_MUTABLE,
122+
'lastUsed' => Types::DATETIME_MUTABLE,
130123
];
131124
$this->conn->executeUpdate($sql, $paramValues, $paramTypes);
132125
}

‎src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/DoctrineExtractorTest.php
+5-12Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@
1313

1414
use Doctrine\Common\Collections\Collection;
1515
use Doctrine\DBAL\Types\Type as DBALType;
16-
use Doctrine\DBAL\Types\Types;
1716
use Doctrine\ORM\EntityManager;
1817
use Doctrine\ORM\Tools\Setup;
1918
use PHPUnit\Framework\TestCase;
2019
use Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor;
21-
use Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineDummy210;
20+
use Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineDummy;
2221
use Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineGeneratedValue;
2322
use Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineRelation;
2423
use Symfony\Component\PropertyInfo\Type;
@@ -58,12 +57,9 @@ public function testGetProperties()
5857
'binary',
5958
'customFoo',
6059
'bigint',
60+
'json',
6161
];
6262

63-
if (class_exists(Types::class)) {
64-
$expected[] = 'json';
65-
}
66-
6763
// Associations
6864
$expected = array_merge($expected, [
6965
'foo',
@@ -76,7 +72,7 @@ public function testGetProperties()
7672

7773
$this->assertEquals(
7874
$expected,
79-
$this->createExtractor()->getProperties(!class_exists(Types::class) ? 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineDummy' : DoctrineDummy210::class)
75+
$this->createExtractor()->getProperties(DoctrineDummy::class)
8076
);
8177
}
8278

@@ -100,7 +96,7 @@ public function testTestGetPropertiesWithEmbedded()
10096
*/
10197
public function testExtract($property, array $type = null)
10298
{
103-
$this->assertEquals($type, $this->createExtractor()->getTypes(!class_exists(Types::class) ? 'Symfony\Bridge\Doctrine\Tests\PropertyInfo\Fixtures\DoctrineDummy' : DoctrineDummy210::class, $property, []));
99+
$this->assertEquals($type, $this->createExtractor()->getTypes(DoctrineDummy::class, $property, []));
104100
}
105101

106102
public function testExtractWithEmbedded()
@@ -175,12 +171,9 @@ public function typesProvider()
175171
new Type(Type::BUILTIN_TYPE_OBJECT, false, DoctrineRelation::class)
176172
)]],
177173
['indexedByCustomType', null],
174+
['json', null],
178175
];
179176

180-
if (class_exists(Types::class)) {
181-
$provider[] = ['json', null];
182-
}
183-
184177
return $provider;
185178
}
186179

‎src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineDummy.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Tests/PropertyInfo/Fixtures/DoctrineDummy.php
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,4 +122,9 @@ class DoctrineDummy
122122
* @OneToMany(targetEntity="DoctrineRelation", mappedBy="customType", indexBy="customType")
123123
*/
124124
private $indexedByCustomType;
125+
126+
/**
127+
* @Column(type="json", nullable=true)
128+
*/
129+
private $json;
125130
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.