26 lines
737 B
PHP
26 lines
737 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Service;
|
||
|
|
|
||
|
|
use Interop\Container\ContainerInterface;
|
||
|
|
use Monolog\Logger;
|
||
|
|
use Zend\Mail\Transport\File;
|
||
|
|
use Zend\Mail\Transport\Smtp;
|
||
|
|
|
||
|
|
class MailerServiceFactory
|
||
|
|
{
|
||
|
|
|
||
|
|
public function __invoke(ContainerInterface $container): MailerService
|
||
|
|
{
|
||
|
|
$config = $container->get('config');
|
||
|
|
|
||
|
|
/** @var Smtp|File $mailTransport */
|
||
|
|
$mailTransport = new $config['mailer']['transportClass']();
|
||
|
|
$transportOptions = new $config['mailer']['optionsClass']($config['mailer']['options']);
|
||
|
|
$mailTransport->setOptions($transportOptions);
|
||
|
|
/** @var Logger $logger */
|
||
|
|
$logger = $container->get(Logger::class);
|
||
|
|
return new MailerService($mailTransport, $config, $logger);
|
||
|
|
}
|
||
|
|
}
|