summaryrefslogtreecommitdiff
path: root/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php')
-rw-r--r--vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php53
1 files changed, 42 insertions, 11 deletions
diff --git a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php
index af321db2..003a1a2a 100644
--- a/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php
+++ b/vendor/monolog/monolog/src/Monolog/Handler/SwiftMailerHandler.php
@@ -21,7 +21,7 @@ use Monolog\Logger;
class SwiftMailerHandler extends MailHandler
{
protected $mailer;
- protected $message;
+ private $messageTemplate;
/**
* @param \Swift_Mailer $mailer The mailer to use
@@ -32,14 +32,9 @@ class SwiftMailerHandler extends MailHandler
public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true)
{
parent::__construct($level, $bubble);
- $this->mailer = $mailer;
- if (!$message instanceof \Swift_Message && is_callable($message)) {
- $message = call_user_func($message);
- }
- if (!$message instanceof \Swift_Message) {
- throw new \InvalidArgumentException('You must provide either a Swift_Message instance or a callable returning it');
- }
- $this->message = $message;
+
+ $this->mailer = $mailer;
+ $this->messageTemplate = $message;
}
/**
@@ -47,10 +42,46 @@ class SwiftMailerHandler extends MailHandler
*/
protected function send($content, array $records)
{
- $message = clone $this->message;
+ $this->mailer->send($this->buildMessage($content, $records));
+ }
+
+ /**
+ * Creates instance of Swift_Message to be sent
+ *
+ * @param string $content formatted email body to be sent
+ * @param array $records Log records that formed the content
+ * @return \Swift_Message
+ */
+ protected function buildMessage($content, array $records)
+ {
+ $message = null;
+ if ($this->messageTemplate instanceof \Swift_Message) {
+ $message = clone $this->messageTemplate;
+ } else if (is_callable($this->messageTemplate)) {
+ $message = call_user_func($this->messageTemplate, $content, $records);
+ }
+
+ 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);
+ return $message;
+ }
+
+ /**
+ * BC getter, to be removed in 2.0
+ */
+ public function __get($name)
+ {
+ if ($name === 'message') {
+ trigger_error('SwiftMailerHandler->message is deprecated, use ->buildMessage() instead to retrieve the message', E_USER_DEPRECATED);
+
+ return $this->buildMessage(null, array());
+ }
+
+ throw new \InvalidArgumentException('Invalid property '.$name);
}
}