TransportServiceFactoryTrait.php

Namespace

Drupal\Core\Mailer

File

core/lib/Drupal/Core/Mailer/TransportServiceFactoryTrait.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Core\Mailer;

use Symfony\Component\Mailer\Exception\UnsupportedSchemeException;
use Symfony\Component\Mailer\Transport\Dsn;
use Symfony\Component\Mailer\Transport\TransportInterface;

/**
 * A trait containing helper methods for transport service construction.
 */
trait TransportServiceFactoryTrait {
  
  /**
   * A list of transport factories.
   *
   * @var Iterable<TransportFactoryInterface>
   */
  protected iterable $factories;
  
  /**
   * Constructs a transport instance given a DSN object.
   *
   * @param \Symfony\Component\Mailer\Transport\Dsn $dsn
   *   The mailer DSN object.
   *
   * @throws \Symfony\Component\Mailer\Exception\IncompleteDsnException
   * @throws \Symfony\Component\Mailer\Exception\UnsupportedSchemeException
   */
  protected function fromDsnObject(Dsn $dsn) : TransportInterface {
    foreach ($this->factories as $factory) {
      if ($factory->supports($dsn)) {
        return $factory->create($dsn);
      }
    }
    throw new UnsupportedSchemeException($dsn);
  }

}

Traits

Title Deprecated Summary
TransportServiceFactoryTrait A trait containing helper methods for transport service construction.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.