From 3db18c198a52eea2cb4726d84319670b1fd9e90d Mon Sep 17 00:00:00 2001 From: SonicGD Date: Sun, 16 Mar 2014 10:46:16 +0600 Subject: [PATCH] Reformat code te be PSR-2 compatible --- Mailer.php | 275 ++++++++++++++--------------- Message.php | 568 +++++++++++++++++++++++++++++++----------------------------- 2 files changed, 431 insertions(+), 412 deletions(-) diff --git a/Mailer.php b/Mailer.php index 8a87ba2..1f91f6d 100644 --- a/Mailer.php +++ b/Mailer.php @@ -75,146 +75,151 @@ use yii\mail\BaseMailer; */ class Mailer extends BaseMailer { - /** - * @var string message default class name. - */ - public $messageClass = 'yii\swiftmailer\Message'; - /** - * @var \Swift_Mailer Swift mailer instance. - */ - private $_swiftMailer; - /** - * @var \Swift_Transport|array Swift transport instance or its array configuration. - */ - private $_transport = []; + /** + * @var string message default class name. + */ + public $messageClass = 'yii\swiftmailer\Message'; + /** + * @var \Swift_Mailer Swift mailer instance. + */ + private $_swiftMailer; + /** + * @var \Swift_Transport|array Swift transport instance or its array configuration. + */ + private $_transport = []; - /** - * @return array|\Swift_Mailer Swift mailer instance or array configuration. - */ - public function getSwiftMailer() - { - if (!is_object($this->_swiftMailer)) { - $this->_swiftMailer = $this->createSwiftMailer(); - } - return $this->_swiftMailer; - } + /** + * @return array|\Swift_Mailer Swift mailer instance or array configuration. + */ + public function getSwiftMailer() + { + if (!is_object($this->_swiftMailer)) { + $this->_swiftMailer = $this->createSwiftMailer(); + } - /** - * @param array|\Swift_Transport $transport - * @throws InvalidConfigException on invalid argument. - */ - public function setTransport($transport) - { - if (!is_array($transport) && !is_object($transport)) { - throw new InvalidConfigException('"' . get_class($this) . '::transport" should be either object or array, "' . gettype($transport) . '" given.'); - } - $this->_transport = $transport; - } + return $this->_swiftMailer; + } - /** - * @return array|\Swift_Transport - */ - public function getTransport() - { - if (!is_object($this->_transport)) { - $this->_transport = $this->createTransport($this->_transport); - } - return $this->_transport; - } + /** + * @param array|\Swift_Transport $transport + * @throws InvalidConfigException on invalid argument. + */ + public function setTransport($transport) + { + if (!is_array($transport) && !is_object($transport)) { + throw new InvalidConfigException('"' . get_class($this) . '::transport" should be either object or array, "' . gettype($transport) . '" given.'); + } + $this->_transport = $transport; + } - /** - * @inheritdoc - */ - protected function sendMessage($message) - { - $address = $message->getTo(); - if (is_array($address)) { - $address = implode(', ', array_keys($address)); - } - Yii::info('Sending email "' . $message->getSubject() . '" to "' . $address . '"', __METHOD__); - return $this->getSwiftMailer()->send($message->getSwiftMessage()) > 0; - } + /** + * @return array|\Swift_Transport + */ + public function getTransport() + { + if (!is_object($this->_transport)) { + $this->_transport = $this->createTransport($this->_transport); + } - /** - * Creates Swift mailer instance. - * @return \Swift_Mailer mailer instance. - */ - protected function createSwiftMailer() - { - return \Swift_Mailer::newInstance($this->getTransport()); - } + return $this->_transport; + } - /** - * Creates email transport instance by its array configuration. - * @param array $config transport configuration. - * @throws \yii\base\InvalidConfigException on invalid transport configuration. - * @return \Swift_Transport transport instance. - */ - protected function createTransport(array $config) - { - if (!isset($config['class'])) { - $config['class'] = 'Swift_MailTransport'; - } - if (isset($config['plugins'])) { - $plugins = $config['plugins']; - unset($config['plugins']); - } - /** @var \Swift_MailTransport $transport */ - $transport = $this->createSwiftObject($config); - if (isset($plugins)) { - foreach ($plugins as $plugin) { - if (is_array($plugin) && isset($plugin['class'])) { - $plugin = $this->createSwiftObject($plugin); - } - $transport->registerPlugin($plugin); - } - } - return $transport; - } + /** + * @inheritdoc + */ + protected function sendMessage($message) + { + $address = $message->getTo(); + if (is_array($address)) { + $address = implode(', ', array_keys($address)); + } + Yii::info('Sending email "' . $message->getSubject() . '" to "' . $address . '"', __METHOD__); - /** - * Creates Swift library object, from given array configuration. - * @param array $config object configuration - * @return Object created object - * @throws \yii\base\InvalidConfigException on invalid configuration. - */ - protected function createSwiftObject(array $config) - { - if (isset($config['class'])) { - $className = $config['class']; - unset($config['class']); - } else { - throw new InvalidConfigException('Object configuration must be an array containing a "class" element.'); - } - if (isset($config['constructArgs'])) { - $args = []; - foreach ($config['constructArgs'] as $arg) { - if (is_array($arg) && isset($arg['class'])) { - $args[] = $this->createSwiftObject($arg); - } else { - $args[] = $arg; - } - } - unset($config['constructArgs']); - array_unshift($args, $className); - $object = call_user_func_array(['Yii', 'createObject'], $args); - } else { - $object = new $className; - } - if (!empty($config)) { - foreach ($config as $name => $value) { - if (property_exists($object, $name)) { - $object->$name = $value; - } else { - $setter = 'set' . $name; - if (method_exists($object, $setter) || method_exists($object, '__call')) { - $object->$setter($value); - } else { - throw new InvalidConfigException('Setting unknown property: ' . $className . '::' . $name); - } - } - } - } - return $object; - } + return $this->getSwiftMailer()->send($message->getSwiftMessage()) > 0; + } + + /** + * Creates Swift mailer instance. + * @return \Swift_Mailer mailer instance. + */ + protected function createSwiftMailer() + { + return \Swift_Mailer::newInstance($this->getTransport()); + } + + /** + * Creates email transport instance by its array configuration. + * @param array $config transport configuration. + * @throws \yii\base\InvalidConfigException on invalid transport configuration. + * @return \Swift_Transport transport instance. + */ + protected function createTransport(array $config) + { + if (!isset($config['class'])) { + $config['class'] = 'Swift_MailTransport'; + } + if (isset($config['plugins'])) { + $plugins = $config['plugins']; + unset($config['plugins']); + } + /** @var \Swift_MailTransport $transport */ + $transport = $this->createSwiftObject($config); + if (isset($plugins)) { + foreach ($plugins as $plugin) { + if (is_array($plugin) && isset($plugin['class'])) { + $plugin = $this->createSwiftObject($plugin); + } + $transport->registerPlugin($plugin); + } + } + + return $transport; + } + + /** + * Creates Swift library object, from given array configuration. + * @param array $config object configuration + * @return Object created object + * @throws \yii\base\InvalidConfigException on invalid configuration. + */ + protected function createSwiftObject(array $config) + { + if (isset($config['class'])) { + $className = $config['class']; + unset($config['class']); + } else { + throw new InvalidConfigException('Object configuration must be an array containing a "class" element.'); + } + if (isset($config['constructArgs'])) { + $args = []; + foreach ($config['constructArgs'] as $arg) { + if (is_array($arg) && isset($arg['class'])) { + $args[] = $this->createSwiftObject($arg); + } else { + $args[] = $arg; + } + } + unset($config['constructArgs']); + array_unshift($args, $className); + $object = call_user_func_array(['Yii', 'createObject'], $args); + } else { + $object = new $className; + } + if (!empty($config)) { + foreach ($config as $name => $value) { + if (property_exists($object, $name)) { + $object->$name = $value; + } else { + $setter = 'set' . $name; + if (method_exists($object, $setter) || method_exists($object, '__call')) { + $object->$setter($value); + } else { + throw new InvalidConfigException('Setting unknown property: ' . $className . '::' . $name); + } + } + } + } + + return $object; + } } diff --git a/Message.php b/Message.php index 7269671..361a021 100644 --- a/Message.php +++ b/Message.php @@ -24,281 +24,295 @@ use yii\mail\BaseMessage; */ class Message extends BaseMessage { - /** - * @var \Swift_Message Swift message instance. - */ - private $_swiftMessage; - - /** - * @return \Swift_Message Swift message instance. - */ - public function getSwiftMessage() - { - if (!is_object($this->_swiftMessage)) { - $this->_swiftMessage = $this->createSwiftMessage(); - } - return $this->_swiftMessage; - } - - /** - * @inheritdoc - */ - public function getCharset() - { - return $this->getSwiftMessage()->getCharset(); - } - - /** - * @inheritdoc - */ - public function setCharset($charset) - { - $this->getSwiftMessage()->setCharset($charset); - return $this; - } - - /** - * @inheritdoc - */ - public function getFrom() - { - return $this->getSwiftMessage()->getFrom(); - } - - /** - * @inheritdoc - */ - public function setFrom($from) - { - $this->getSwiftMessage()->setFrom($from); - return $this; - } - - /** - * @inheritdoc - */ - public function getReplyTo() - { - return $this->getSwiftMessage()->getReplyTo(); - } - - /** - * @inheritdoc - */ - public function setReplyTo($replyTo) - { - $this->getSwiftMessage()->setReplyTo($replyTo); - return $this; - } - - /** - * @inheritdoc - */ - public function getTo() - { - return $this->getSwiftMessage()->getTo(); - } - - /** - * @inheritdoc - */ - public function setTo($to) - { - $this->getSwiftMessage()->setTo($to); - return $this; - } - - /** - * @inheritdoc - */ - public function getCc() - { - return $this->getSwiftMessage()->getCc(); - } - - /** - * @inheritdoc - */ - public function setCc($cc) - { - $this->getSwiftMessage()->setCc($cc); - return $this; - } - - /** - * @inheritdoc - */ - public function getBcc() - { - return $this->getSwiftMessage()->getBcc(); - } - - /** - * @inheritdoc - */ - public function setBcc($bcc) - { - $this->getSwiftMessage()->setBcc($bcc); - return $this; - } - - /** - * @inheritdoc - */ - public function getSubject() - { - return $this->getSwiftMessage()->getSubject(); - } - - /** - * @inheritdoc - */ - public function setSubject($subject) - { - $this->getSwiftMessage()->setSubject($subject); - return $this; - } - - /** - * @inheritdoc - */ - public function setTextBody($text) - { - $this->setBody($text, 'text/plain'); - return $this; - } - - /** - * @inheritdoc - */ - public function setHtmlBody($html) - { - $this->setBody($html, 'text/html'); - return $this; - } - - /** - * Sets the message body. - * If body is already set and its content type matches given one, it will - * be overridden, if content type miss match the multipart message will be composed. - * @param string $body body content. - * @param string $contentType body content type. - */ - protected function setBody($body, $contentType) - { - $message = $this->getSwiftMessage(); - $oldBody = $message->getBody(); - $charset = $message->getCharset(); - if (empty($oldBody)) { - $parts = $message->getChildren(); - $partFound = false; - foreach ($parts as $key => $part) { - if (!($part instanceof \Swift_Mime_Attachment)) { - /* @var \Swift_Mime_MimePart $part */ - if ($part->getContentType() == $contentType) { - $charset = $part->getCharset(); - unset($parts[$key]); - $partFound = true; - break; - } - } - } - if ($partFound) { - reset($parts); - $message->setChildren($parts); - $message->addPart($body, $contentType, $charset); - } else { - $message->setBody($body, $contentType); - } - } else { - $oldContentType = $message->getContentType(); - if ($oldContentType == $contentType) { - $message->setBody($body, $contentType); - } else { - $message->setBody(null); - $message->setContentType(null); - $message->addPart($oldBody, $oldContentType, $charset); - $message->addPart($body, $contentType, $charset); - } - } - } - - /** - * @inheritdoc - */ - public function attach($fileName, array $options = []) - { - $attachment = \Swift_Attachment::fromPath($fileName); - if (!empty($options['fileName'])) { - $attachment->setFilename($options['fileName']); - } - if (!empty($options['contentType'])) { - $attachment->setContentType($options['contentType']); - } - $this->getSwiftMessage()->attach($attachment); - return $this; - } - - /** - * @inheritdoc - */ - public function attachContent($content, array $options = []) - { - $attachment = \Swift_Attachment::newInstance($content); - if (!empty($options['fileName'])) { - $attachment->setFilename($options['fileName']); - } - if (!empty($options['contentType'])) { - $attachment->setContentType($options['contentType']); - } - $this->getSwiftMessage()->attach($attachment); - return $this; - } - - /** - * @inheritdoc - */ - public function embed($fileName, array $options = []) - { - $embedFile = \Swift_EmbeddedFile::fromPath($fileName); - if (!empty($options['fileName'])) { - $embedFile->setFilename($options['fileName']); - } - if (!empty($options['contentType'])) { - $embedFile->setContentType($options['contentType']); - } - return $this->getSwiftMessage()->embed($embedFile); - } - - /** - * @inheritdoc - */ - public function embedContent($content, array $options = []) - { - $embedFile = \Swift_EmbeddedFile::newInstance($content); - if (!empty($options['fileName'])) { - $embedFile->setFilename($options['fileName']); - } - if (!empty($options['contentType'])) { - $embedFile->setContentType($options['contentType']); - } - return $this->getSwiftMessage()->embed($embedFile); - } - - /** - * @inheritdoc - */ - public function toString() - { - return $this->getSwiftMessage()->toString(); - } - - /** - * Creates the Swift email message instance. - * @return \Swift_Message email message instance. - */ - protected function createSwiftMessage() - { - return new \Swift_Message(); - } + /** + * @var \Swift_Message Swift message instance. + */ + private $_swiftMessage; + + /** + * @return \Swift_Message Swift message instance. + */ + public function getSwiftMessage() + { + if (!is_object($this->_swiftMessage)) { + $this->_swiftMessage = $this->createSwiftMessage(); + } + + return $this->_swiftMessage; + } + + /** + * @inheritdoc + */ + public function getCharset() + { + return $this->getSwiftMessage()->getCharset(); + } + + /** + * @inheritdoc + */ + public function setCharset($charset) + { + $this->getSwiftMessage()->setCharset($charset); + + return $this; + } + + /** + * @inheritdoc + */ + public function getFrom() + { + return $this->getSwiftMessage()->getFrom(); + } + + /** + * @inheritdoc + */ + public function setFrom($from) + { + $this->getSwiftMessage()->setFrom($from); + + return $this; + } + + /** + * @inheritdoc + */ + public function getReplyTo() + { + return $this->getSwiftMessage()->getReplyTo(); + } + + /** + * @inheritdoc + */ + public function setReplyTo($replyTo) + { + $this->getSwiftMessage()->setReplyTo($replyTo); + + return $this; + } + + /** + * @inheritdoc + */ + public function getTo() + { + return $this->getSwiftMessage()->getTo(); + } + + /** + * @inheritdoc + */ + public function setTo($to) + { + $this->getSwiftMessage()->setTo($to); + + return $this; + } + + /** + * @inheritdoc + */ + public function getCc() + { + return $this->getSwiftMessage()->getCc(); + } + + /** + * @inheritdoc + */ + public function setCc($cc) + { + $this->getSwiftMessage()->setCc($cc); + + return $this; + } + + /** + * @inheritdoc + */ + public function getBcc() + { + return $this->getSwiftMessage()->getBcc(); + } + + /** + * @inheritdoc + */ + public function setBcc($bcc) + { + $this->getSwiftMessage()->setBcc($bcc); + + return $this; + } + + /** + * @inheritdoc + */ + public function getSubject() + { + return $this->getSwiftMessage()->getSubject(); + } + + /** + * @inheritdoc + */ + public function setSubject($subject) + { + $this->getSwiftMessage()->setSubject($subject); + + return $this; + } + + /** + * @inheritdoc + */ + public function setTextBody($text) + { + $this->setBody($text, 'text/plain'); + + return $this; + } + + /** + * @inheritdoc + */ + public function setHtmlBody($html) + { + $this->setBody($html, 'text/html'); + + return $this; + } + + /** + * Sets the message body. + * If body is already set and its content type matches given one, it will + * be overridden, if content type miss match the multipart message will be composed. + * @param string $body body content. + * @param string $contentType body content type. + */ + protected function setBody($body, $contentType) + { + $message = $this->getSwiftMessage(); + $oldBody = $message->getBody(); + $charset = $message->getCharset(); + if (empty($oldBody)) { + $parts = $message->getChildren(); + $partFound = false; + foreach ($parts as $key => $part) { + if (!($part instanceof \Swift_Mime_Attachment)) { + /* @var \Swift_Mime_MimePart $part */ + if ($part->getContentType() == $contentType) { + $charset = $part->getCharset(); + unset($parts[$key]); + $partFound = true; + break; + } + } + } + if ($partFound) { + reset($parts); + $message->setChildren($parts); + $message->addPart($body, $contentType, $charset); + } else { + $message->setBody($body, $contentType); + } + } else { + $oldContentType = $message->getContentType(); + if ($oldContentType == $contentType) { + $message->setBody($body, $contentType); + } else { + $message->setBody(null); + $message->setContentType(null); + $message->addPart($oldBody, $oldContentType, $charset); + $message->addPart($body, $contentType, $charset); + } + } + } + + /** + * @inheritdoc + */ + public function attach($fileName, array $options = []) + { + $attachment = \Swift_Attachment::fromPath($fileName); + if (!empty($options['fileName'])) { + $attachment->setFilename($options['fileName']); + } + if (!empty($options['contentType'])) { + $attachment->setContentType($options['contentType']); + } + $this->getSwiftMessage()->attach($attachment); + + return $this; + } + + /** + * @inheritdoc + */ + public function attachContent($content, array $options = []) + { + $attachment = \Swift_Attachment::newInstance($content); + if (!empty($options['fileName'])) { + $attachment->setFilename($options['fileName']); + } + if (!empty($options['contentType'])) { + $attachment->setContentType($options['contentType']); + } + $this->getSwiftMessage()->attach($attachment); + + return $this; + } + + /** + * @inheritdoc + */ + public function embed($fileName, array $options = []) + { + $embedFile = \Swift_EmbeddedFile::fromPath($fileName); + if (!empty($options['fileName'])) { + $embedFile->setFilename($options['fileName']); + } + if (!empty($options['contentType'])) { + $embedFile->setContentType($options['contentType']); + } + + return $this->getSwiftMessage()->embed($embedFile); + } + + /** + * @inheritdoc + */ + public function embedContent($content, array $options = []) + { + $embedFile = \Swift_EmbeddedFile::newInstance($content); + if (!empty($options['fileName'])) { + $embedFile->setFilename($options['fileName']); + } + if (!empty($options['contentType'])) { + $embedFile->setContentType($options['contentType']); + } + + return $this->getSwiftMessage()->embed($embedFile); + } + + /** + * @inheritdoc + */ + public function toString() + { + return $this->getSwiftMessage()->toString(); + } + + /** + * Creates the Swift email message instance. + * @return \Swift_Message email message instance. + */ + protected function createSwiftMessage() + { + return new \Swift_Message(); + } }