/**
* Checks whether the connection is still open or reconnects otherwise.
*
* @author Fuong <insidestyles@gmail.com>
*/
class DoctrinePingConnectionMiddleware extends AbstractDoctrineMiddleware
{ protected function handleForManager(EntityManagerInterface
$entityManager, Envelope
$envelope, StackInterface
$stack): Envelope
{ if (null !==
$envelope->
last(ConsumedByWorkerStamp::
class)) { $this->
pingConnection($entityManager);
} return $stack->
next()->
handle($envelope,
$stack);
} private function pingConnection(EntityManagerInterface
$entityManager): void
{ $connection =
$entityManager->
getConnection();
try { $connection->
executeQuery($connection->
getDatabasePlatform()->
getDummySelectSQL());
}