diff --git a/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php b/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php index 67707339640d8..3a7db27a18f59 100644 --- a/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php +++ b/src/Symfony/Component/Messenger/Tests/Transport/Doctrine/DoctrineIntegrationTest.php @@ -81,25 +81,25 @@ public function testItRetrieveTheFirstAvailableMessage() 'body' => '{"message": "Hi handled"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'delivered_at' => Connection::formatDateTime(new \DateTime()), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:00:00', + 'delivered_at' => (new \DateTime())->format('Y-m-d H:i:s'), ]); // one available later $this->driverConnection->insert('messenger_messages', [ 'body' => '{"message": "Hi delayed"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 13:00:00')), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 13:00:00', ]); // one available $this->driverConnection->insert('messenger_messages', [ 'body' => '{"message": "Hi available"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:30:00')), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:30:00', ]); $encoded = $this->connection->get(); @@ -114,33 +114,33 @@ public function testItCountMessages() 'body' => '{"message": "Hi handled"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'delivered_at' => Connection::formatDateTime(new \DateTime()), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:00:00', + 'delivered_at' => (new \DateTime())->format('Y-m-d H:i:s'), ]); // one available later $this->driverConnection->insert('messenger_messages', [ 'body' => '{"message": "Hi delayed"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime((new \DateTime())->modify('+1 minute')), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => ((new \DateTime())->modify('+1 minute'))->format('Y-m-d H:i:s'), ]); // one available $this->driverConnection->insert('messenger_messages', [ 'body' => '{"message": "Hi available"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:30:00')), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:30:00', ]); // another available $this->driverConnection->insert('messenger_messages', [ 'body' => '{"message": "Hi available"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:30:00')), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:30:00', ]); $this->assertSame(2, $this->connection->getMessageCount()); @@ -154,16 +154,16 @@ public function testItRetrieveTheMessageThatIsOlderThanRedeliverTimeout() 'body' => '{"message": "Hi requeued"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'delivered_at' => Connection::formatDateTime($twoHoursAgo), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:00:00', + 'delivered_at' => $twoHoursAgo->format('Y-m-d H:i:s'), ]); $this->driverConnection->insert('messenger_messages', [ 'body' => '{"message": "Hi available"}', 'headers' => json_encode(['type' => DummyMessage::class]), 'queue_name' => 'default', - 'created_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:00:00')), - 'available_at' => Connection::formatDateTime(new \DateTime('2019-03-15 12:30:00')), + 'created_at' => '2019-03-15 12:00:00', + 'available_at' => '2019-03-15 12:30:00', ]); $next = $this->connection->get(); diff --git a/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php b/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php index c8692ba3486c6..81a2d7248dec5 100644 --- a/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php +++ b/src/Symfony/Component/Messenger/Transport/Doctrine/Connection.php @@ -122,8 +122,8 @@ public function send(string $body, array $headers, int $delay = 0): string ':body' => $body, ':headers' => json_encode($headers), ':queue_name' => $this->configuration['queue_name'], - ':created_at' => self::formatDateTime($now), - ':available_at' => self::formatDateTime($availableAt), + ':created_at' => $this->formatDateTime($now), + ':available_at' => $this->formatDateTime($availableAt), ]); return $this->driverConnection->lastInsertId(); @@ -161,7 +161,7 @@ public function get(): ?array $now = new \DateTime(); $this->executeQuery($queryBuilder->getSQL(), [ ':id' => $doctrineEnvelope['id'], - ':delivered_at' => self::formatDateTime($now), + ':delivered_at' => $this->formatDateTime($now), ]); $this->driverConnection->commit(); @@ -268,9 +268,9 @@ private function createAvailableMessagesQueryBuilder(): QueryBuilder ->andWhere('m.available_at <= :now') ->andWhere('m.queue_name = :queue_name') ->setParameters([ - ':now' => self::formatDateTime($now), + ':now' => $this->formatDateTime($now), ':queue_name' => $this->configuration['queue_name'], - ':redeliver_limit' => self::formatDateTime($redeliverLimit), + ':redeliver_limit' => $this->formatDateTime($redeliverLimit), ]); } @@ -329,9 +329,9 @@ private function getSchema(): Schema return $schema; } - public static function formatDateTime(\DateTimeInterface $dateTime) + private function formatDateTime(\DateTimeInterface $dateTime): string { - return $dateTime->format('Y-m-d\TH:i:s'); + return $dateTime->format($this->driverConnection->getDatabasePlatform()->getDateTimeFormatString()); } private function decodeEnvelopeHeaders(array $doctrineEnvelope): array