Skip to content

Commit f9411ab

Browse files
Merge branch '5.1'
* 5.1: Handle fetch mode deprecation of DBAL 2.11.
2 parents 71d1d70 + 50dda4c commit f9411ab

File tree

6 files changed

+31
-20
lines changed

6 files changed

+31
-20
lines changed

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

Lines 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/Adapter/PdoAdapter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ protected function doHave(string $id)
257257
$stmt->bindValue(':time', time(), \PDO::PARAM_INT);
258258
$stmt->execute();
259259

260-
return (bool) $stmt->fetchColumn();
260+
return (bool) (method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
261261
}
262262

263263
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ public function exists(Key $key)
193193
$stmt->bindValue(':token', $this->getUniqueToken($key));
194194
$stmt->execute();
195195

196-
return (bool) $stmt->fetchColumn();
196+
return (bool) (method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn());
197197
}
198198

199199
/**

src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/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\Bridge\Doctrine\Tests\Transport;
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;
@@ -143,11 +144,16 @@ private function getQueryBuilderMock()
143144
return $queryBuilder;
144145
}
145146

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

153159
return $stmt;
@@ -309,9 +315,12 @@ public function testFindAll()
309315
'headers' => json_encode(['type' => DummyMessage::class]),
310316
];
311317

312-
$stmt = $this->createMock(Statement::class);
318+
$mockedInterface = interface_exists(ForwardCompatibleResultStatement::class)
319+
? ForwardCompatibleResultStatement::class
320+
: ResultStatement::class;
321+
$stmt = $this->createMock($mockedInterface);
313322
$stmt->expects($this->once())
314-
->method('fetchAll')
323+
->method(method_exists($mockedInterface, 'fetchAllAssociative') ? 'fetchAllAssociative' : 'fetchAll')
315324
->willReturn([$message1, $message2]);
316325

317326
$driverConnection

src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/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/Bridge/Doctrine/Transport/Connection.php

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -157,11 +157,12 @@ public function get(): ?array
157157
->setMaxResults(1);
158158

159159
// use SELECT ... FOR UPDATE to lock table
160-
$doctrineEnvelope = $this->executeQuery(
160+
$stmt = $this->executeQuery(
161161
$query->getSQL().' '.$this->driverConnection->getDatabasePlatform()->getWriteLockSQL(),
162162
$query->getParameters(),
163163
$query->getParameterTypes()
164-
)->fetch();
164+
);
165+
$doctrineEnvelope = method_exists($stmt, 'fetchAssociative') ? $stmt->fetchAssociative() : $stmt->fetch();
165166

166167
if (false === $doctrineEnvelope) {
167168
$this->driverConnection->commit();
@@ -236,7 +237,9 @@ public function getMessageCount(): int
236237
->select('COUNT(m.id) as message_count')
237238
->setMaxResults(1);
238239

239-
return $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes())->fetchColumn();
240+
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
241+
242+
return method_exists($stmt, 'fetchOne') ? $stmt->fetchOne() : $stmt->fetchColumn();
240243
}
241244

242245
public function findAll(int $limit = null): array
@@ -246,7 +249,8 @@ public function findAll(int $limit = null): array
246249
$queryBuilder->setMaxResults($limit);
247250
}
248251

249-
$data = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes())->fetchAll();
252+
$stmt = $this->executeQuery($queryBuilder->getSQL(), $queryBuilder->getParameters(), $queryBuilder->getParameterTypes());
253+
$data = method_exists($stmt, 'fetchAllAssociative') ? $stmt->fetchAllAssociative() : $stmt->fetchAll();
250254

251255
return array_map(function ($doctrineEnvelope) {
252256
return $this->decodeEnvelopeHeaders($doctrineEnvelope);
@@ -258,9 +262,8 @@ public function find($id): ?array
258262
$queryBuilder = $this->createQueryBuilder()
259263
->where('m.id = ?');
260264

261-
$data = $this->executeQuery($queryBuilder->getSQL(), [
262-
$id,
263-
])->fetch();
265+
$stmt = $this->executeQuery($queryBuilder->getSQL(), [$id]);
266+
$data = method_exists($stmt, 'fetchAssociative') ? $stmt->fetchAssociative() : $stmt->fetch();
264267

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

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