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 49
|
<?php
/**
* This file is part of the Nette Framework (https://nette.org)
* Copyright (c) 2004 David Grudl (https://davidgrudl.com)
*/
namespace Nette\Bridges\MailDI;
use Nette;
/**
* Mail extension for Nette DI.
*/
class MailExtension extends Nette\DI\CompilerExtension
{
public $defaults = [
'smtp' => FALSE,
'host' => NULL,
'port' => NULL,
'username' => NULL,
'password' => NULL,
'secure' => NULL,
'timeout' => NULL,
];
public function loadConfiguration()
{
$builder = $this->getContainerBuilder();
$config = $this->validateConfig($this->defaults);
$mailer = $builder->addDefinition($this->prefix('mailer'))
->setClass(Nette\Mail\IMailer::class);
if (empty($config['smtp'])) {
$mailer->setFactory(Nette\Mail\SendmailMailer::class);
} else {
$mailer->setFactory(Nette\Mail\SmtpMailer::class, [$config]);
}
if ($this->name === 'mail') {
$builder->addAlias('nette.mailer', $this->prefix('mailer'));
}
}
}
|