public function __construct(ConnectionRegistry
$registry) { $this->registry =
$registry;
} public function createTransport(#[\SensitiveParameter] string $dsn, array $options, SerializerInterface $serializer): TransportInterface
{ $useNotify =
($options['use_notify'
] ?? true
);
unset($options['transport_name'
],
$options['use_notify'
]);
// Always allow PostgreSQL-specific keys, to be able to transparently fallback to the native driver when LISTEN/NOTIFY isn't available
$configuration = PostgreSqlConnection::
buildConfiguration($dsn,
$options);
try { $driverConnection =
$this->registry->
getConnection($configuration['connection'
]);
} catch (\InvalidArgumentException
$e) { throw new TransportException('Could not find Doctrine connection from Messenger DSN.', 0,
$e);
} if ($useNotify &&
$driverConnection->
getDatabasePlatform() instanceof PostgreSQLPlatform
) { $connection =
new PostgreSqlConnection($configuration,
$driverConnection);
} else { $connection =
new Connection($configuration,
$driverConnection);
}