Last active
August 29, 2015 14:13
-
-
Save johnkary/1a10a465721d540f3ab7 to your computer and use it in GitHub Desktop.
Lazy SwiftMailerHandler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/* | |
* This file is part of the Monolog package. | |
* | |
* (c) Jordi Boggiano <j.boggiano@seld.be> | |
* | |
* For the full copyright and license information, please view the LICENSE | |
* file that was distributed with this source code. | |
*/ | |
namespace Monolog\Handler; | |
use Monolog\Logger; | |
/** | |
* SwiftMailerHandler uses Swift_Mailer to send the emails | |
* | |
* @author Gyula Sallai | |
*/ | |
class SwiftMailerHandler extends MailHandler | |
{ | |
protected $mailer; | |
protected $message; | |
/** | |
* @param \Swift_Mailer $mailer The mailer to use | |
* @param callable|\Swift_Message $message An example message for real messages, only the body will be replaced | |
* @param integer $level The minimum logging level at which this handler will be triggered | |
* @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not | |
*/ | |
public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true) | |
{ | |
parent::__construct($level, $bubble); | |
$this->mailer = $mailer; | |
$this->message = $message; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function send($content, array $records) | |
{ | |
$message = null; | |
if (!$this->message instanceof \Swift_Message && is_callable($this->message)) { | |
$message = call_user_func($this->message); | |
} | |
if (!$message instanceof \Swift_Message) { | |
throw new \InvalidArgumentException('Could not resolve message as instance of Swift_Message or a callable returning it'); | |
} | |
$message->setBody($content); | |
$message->setDate(time()); | |
$this->mailer->send($message); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment