bug #37441 [DoctrineBridge] work around Connection::ping() deprecation (nicolas-grekas)
This PR was merged into the 4.4 branch. Discussion ---------- [DoctrineBridge] work around Connection::ping() deprecation | Q | A | ------------- | --- | Branch? | 4.4 | Bug fix? | yes | New feature? | no | Deprecations? | no | Tickets | - | License | MIT | Doc PR | - Followse603a2e233
Commits -------9ccf043c7c
[DoctrineBridge] work around Connection::ping() deprecation
This commit is contained in:
commit
9c6d53a78b
@ -11,6 +11,7 @@
|
||||
|
||||
namespace Symfony\Bridge\Doctrine\Messenger;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Symfony\Component\Messenger\Envelope;
|
||||
use Symfony\Component\Messenger\Middleware\StackInterface;
|
||||
@ -36,7 +37,9 @@ class DoctrinePingConnectionMiddleware extends AbstractDoctrineMiddleware
|
||||
{
|
||||
$connection = $entityManager->getConnection();
|
||||
|
||||
if (!$connection->ping()) {
|
||||
try {
|
||||
$connection->query($connection->getDatabasePlatform()->getDummySelectSQL());
|
||||
} catch (DBALException $e) {
|
||||
$connection->close();
|
||||
$connection->connect();
|
||||
}
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace Symfony\Bridge\Doctrine\Tests\Messenger;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\ORM\EntityManagerInterface;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
use Symfony\Bridge\Doctrine\Messenger\DoctrinePingConnectionMiddleware;
|
||||
@ -47,8 +48,8 @@ class DoctrinePingConnectionMiddlewareTest extends MiddlewareTestCase
|
||||
public function testMiddlewarePingOk()
|
||||
{
|
||||
$this->connection->expects($this->once())
|
||||
->method('ping')
|
||||
->willReturn(false);
|
||||
->method('getDatabasePlatform')
|
||||
->will($this->throwException(new DBALException()));
|
||||
|
||||
$this->connection->expects($this->once())
|
||||
->method('close')
|
||||
@ -65,6 +66,10 @@ class DoctrinePingConnectionMiddlewareTest extends MiddlewareTestCase
|
||||
|
||||
public function testMiddlewarePingResetEntityManager()
|
||||
{
|
||||
$this->connection->expects($this->once())
|
||||
->method('getDatabasePlatform')
|
||||
->will($this->throwException(new DBALException()));
|
||||
|
||||
$this->entityManager->expects($this->once())
|
||||
->method('isOpen')
|
||||
->willReturn(false)
|
||||
|
Reference in New Issue
Block a user