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 5fe0f94

Browse filesBrowse files
minor #36992 Handle fetch mode deprecation of DBAL 2.11 (derrabus)
This PR was merged into the 4.4 branch. Discussion ---------- Handle fetch mode deprecation of DBAL 2.11 | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | N/A | License | MIT | Doc PR | N/A Continuation of #36987 on the 4.4 branch. Commits ------- 1385213 Handle fetch mode deprecation of DBAL 2.11.
2 parents dfe8c81 + 1385213 commit 5fe0f94
Copy full SHA for 5fe0f94

File tree

6 files changed

+31
-20
lines changed
Filter options

6 files changed

+31
-20
lines changed

‎src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Tests/Security/RememberMe/DoctrineTokenProviderTest.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
*/
1414
class DoctrineTokenProviderTest extends TestCase
1515
{
16-
public static function setUpBeforeClass()
16+
public static function setUpBeforeClass(): void
1717
{
1818
if (\PHP_VERSION_ID >= 80000) {
1919
self::markTestSkipped('Doctrine DBAL 2.x is incompatible with PHP 8.');

‎src/Symfony/Component/Cache/Traits/PdoTrait.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Cache/Traits/PdoTrait.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ protected function doHave($id)
232232
$stmt->bindValue(':time', time(), \PDO::PARAM_INT);
233233
$stmt->execute();
234234

235-
return (bool) $stmt->fetchColumn();
235+
return (bool) (method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
236236
}
237237

238238
/**

‎src/Symfony/Component/Lock/Store/PdoStore.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Lock/Store/PdoStore.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ public function exists(Key $key)
203203
$stmt->bindValue(':token', $this->getUniqueToken($key));
204204
$stmt->execute();
205205

206-
return (bool) $stmt->fetchColumn();
206+
return (bool) (method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
207207
}
208208

209209
/**

‎src/Symfony/Component/Messenger/Tests/Transport/Doctrine/ConnectionTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Messenger/Tests/Transport/Doctrine/ConnectionTest.php
+15-6Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
namespace Symfony\Component\Messenger\Tests\Transport\Doctrine;
1313

1414
use Doctrine\DBAL\DBALException;
15-
use Doctrine\DBAL\Driver\Statement;
15+
use Doctrine\DBAL\Driver\ResultStatement;
16+
use Doctrine\DBAL\ForwardCompatibility\Driver\ResultStatement as ForwardCompatibleResultStatement;
1617
use Doctrine\DBAL\Platforms\AbstractPlatform;
1718
use Doctrine\DBAL\Query\QueryBuilder;
1819
use Doctrine\DBAL\Schema\AbstractSchemaManager;
@@ -142,11 +143,16 @@ private function getQueryBuilderMock()
142143
return $queryBuilder;
143144
}
144145

145-
private function getStatementMock($expectedResult): Statement
146+
private function getStatementMock($expectedResult): ResultStatement
146147
{
147-
$stmt = $this->createMock(Statement::class);
148+
$mockedInterface = interface_exists(ForwardCompatibleResultStatement::class)
149+
? ForwardCompatibleResultStatement::class
150+
: ResultStatement::class;
151+
152+
$stmt = $this->createMock($mockedInterface);
153+
148154
$stmt->expects($this->once())
149-
->method('fetch')
155+
->method(method_exists($mockedInterface, 'fetchAssociative') ? 'fetchAssociative' : 'fetch')
150156
->willReturn($expectedResult);
151157

152158
return $stmt;
@@ -306,9 +312,12 @@ public function testFindAll()
306312
'headers' => json_encode(['type' => DummyMessage::class]),
307313
];
308314

309-
$stmt = $this->createMock(Statement::class);
315+
$mockedInterface = interface_exists(ForwardCompatibleResultStatement::class)
316+
? ForwardCompatibleResultStatement::class
317+
: ResultStatement::class;
318+
$stmt = $this->createMock($mockedInterface);
310319
$stmt->expects($this->once())
311-
->method('fetchAll')
320+
->method(method_exists($mockedInterface, 'fetchAllAssociative') ? 'fetchAllAssociative' : 'fetchAll')
312321
->willReturn([$message1, $message2]);
313322

314323
$driverConnection

‎src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php
+3-4Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,14 @@ public function testSendWithDelay()
6464
{
6565
$this->connection->send('{"message": "Hi i am delayed"}', ['type' => DummyMessage::class], 600000);
6666

67-
$available_at = $this->driverConnection->createQueryBuilder()
67+
$stmt = $this->driverConnection->createQueryBuilder()
6868
->select('m.available_at')
6969
->from('messenger_messages', 'm')
7070
->where('m.body = :body')
7171
->setParameter(':body', '{"message": "Hi i am delayed"}')
72-
->execute()
73-
->fetchColumn();
72+
->execute();
7473

75-
$available_at = new \DateTime($available_at);
74+
$available_at = new \DateTime(method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
7675

7776
$now = new \DateTime();
7877
$now->modify('+60 seconds');

‎src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php
+10-7Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,12 @@ public function get(): ?array
159159
->setMaxResults(1);
160160

161161
// use SELECT ... FOR UPDATE to lock table
162-
$doctrineEnvelope = $this->executeQuery(
162+
$stmt = $this->executeQuery(
163163
$query->getSQL().' '.$this->driverConnection->getDatabasePlatform()->getWriteLockSQL(),
164164
$query->getParameters(),
165165
$query->getParameterTypes()
166-
)->fetch();
166+
);
167+
$doctrineEnvelope = method_exists($stmt, 'fetchAssociative') ? $stmt->fetchAssociative() : $stmt->fetch();
167168

168169
if (false === $doctrineEnvelope) {
169170
$this->driverConnection->commit();
@@ -249,7 +250,9 @@ public function getMessageCount(): int
249250
->select('COUNT(m.id) as message_count')
250251
->setMaxResults(1);
251252

252-
return $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes())->fetchColumn();
253+
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
254+
255+
return method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn();
253256
}
254257

255258
public function findAll(int $limit = null): array
@@ -259,7 +262,8 @@ public function findAll(int $limit = null): array
259262
$queryBuilder->setMaxResults($limit);
260263
}
261264

262-
$data = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes())->fetchAll();
265+
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
266+
$data = method_exists($stmt, 'fetchAllAssociative') ? $stmt->fetchAllAssociative() : $stmt->fetchAll();
263267

264268
return array_map(function ($doctrineEnvelope) {
265269
return $this->decodeEnvelopeHeaders($doctrineEnvelope);
@@ -271,9 +275,8 @@ public function find($id): ?array
271275
$queryBuilder = $this->createQueryBuilder()
272276
->where('m.id = ?');
273277

274-
$data = $this->executeQuery($queryBuilder->getSQL(), [
275-
$id,
276-
])->fetch();
278+
$stmt = $this->executeQuery($queryBuilder->getSQL(), [$id]);
279+
$data = method_exists($stmt, 'fetchAssociative') ? $stmt->fetchAssociative() : $stmt->fetch();
277280

278281
return false === $data ? null : $this->decodeEnvelopeHeaders($data);
279282
}

0 commit comments

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