Spaces:
No application file
No application file
File size: 1,204 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?php
declare(strict_types=1);
namespace Mautic\EmailBundle\Mailer\Transport;
use Symfony\Component\Mailer\Exception\UnsupportedSchemeException;
use Symfony\Component\Mailer\Transport as SymfonyTransportFactory;
use Symfony\Component\Mailer\Transport\Dsn;
use Symfony\Component\Mailer\Transport\TransportInterface;
use Symfony\Component\Mailer\Transport\Transports;
class TransportFactory
{
public function __construct(
private SymfonyTransportFactory $transportFactory
) {
}
/**
* @param array<string, string> $dsns
*/
public function fromStrings(array $dsns): Transports
{
$transports = [];
foreach ($dsns as $name => $dsn) {
$transports[$name] = $this->fromString($dsn);
}
return new Transports($transports);
}
public function fromString(string $dsn): TransportInterface
{
try {
return $this->transportFactory->fromString($dsn);
} catch (UnsupportedSchemeException) {
return new InvalidTransport();
}
}
public function fromDsnObject(Dsn $dsn): TransportInterface
{
return $this->transportFactory->fromDsnObject($dsn);
}
}
|