foreach ($dsns as $name =>
$dsn) { $transports[$name] =
$this->
fromString($dsn);
} return new Transports($transports);
} public function fromString(#[\SensitiveParameter] string $dsn): TransportInterface
{ $dsns =
preg_split('/\s++\|\|\s++/',
$dsn);
if (\
count($dsns) > 1
) { return new FailoverTransport($this->
createFromDsns($dsns));
} $dsns =
preg_split('/\s++&&\s++/',
$dsn);
if (\
count($dsns) > 1
) { return new RoundRobinTransport($this->
createFromDsns($dsns));
} return $this->
fromDsnObject(new Dsn($dsn));
} public function fromDsnObject(Dsn
$dsn): TransportInterface
{