Skip to content

Commit 1385213

Browse files
committed
Handle fetch mode deprecation of DBAL 2.11.
1 parent 9f52228 commit 1385213

File tree

5 files changed

+30
-19
lines changed

5 files changed

+30
-19
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ protected function doHave($id)
226226
$stmt->bindValue(':time', time(), \PDO::PARAM_INT);
227227
$stmt->execute();
228228

229-
return (bool) $stmt->fetchColumn();
229+
return (bool) (method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
230230
}
231231

232232
/**

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

Lines 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

Lines 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

Lines 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

Lines 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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy