Browse Source

`Logger` docs improved

tags/2.1.0
Klimov Paul 8 years ago
parent
commit
97d14bf3da
  1. 44
      Logger.php
  2. 41
      Mailer.php

44
Logger.php

@ -13,22 +13,44 @@ use Yii;
* Logger is a SwiftMailer plugin, which allows passing of the SwiftMailer internal logs to the * Logger is a SwiftMailer plugin, which allows passing of the SwiftMailer internal logs to the
* Yii logging mechanism. Each native SwiftMailer log message will be converted into Yii 'info' log entry. * Yii logging mechanism. Each native SwiftMailer log message will be converted into Yii 'info' log entry.
* *
* This logger will be automatically created and applied to underlying [[\Swift_Mailer]] instance, if [[Mailer::$enableSwiftMailerLogging]]
* is enabled. For example:
*
* ```php
* [
* 'components' => [
* 'mailer' => [
* 'class' => 'yii\swiftmailer\Mailer',
* 'enableSwiftMailerLogging' => true,
* ],
* ],
* // ...
* ],
* ```
*
*
* In order to catch logs written by this class, you need to setup a log route for 'yii\swiftmailer\Logger::add' category. * In order to catch logs written by this class, you need to setup a log route for 'yii\swiftmailer\Logger::add' category.
* For example: * For example:
* *
* ~~~ * ```php
* 'log' => [ * [
* 'targets' => [ * 'components' => [
* [ * 'log' => [
* 'class' => 'yii\log\FileTarget', * 'targets' => [
* 'categories' => ['yii\swiftmailer\Logger::add'], * [
* 'class' => 'yii\log\FileTarget',
* 'categories' => ['yii\swiftmailer\Logger::add'],
* ],
* ],
* ], * ],
* // ...
* ], * ],
* // ...
* ], * ],
* ~~~ * ```
* *
* @author Paul Klimov <klimov.paul@gmail.com> * @author Paul Klimov <klimov.paul@gmail.com>
* @since 2.0 * @since 2.0.4
*/ */
class Logger implements \Swift_Plugins_Logger class Logger implements \Swift_Plugins_Logger
{ {
@ -49,10 +71,8 @@ class Logger implements \Swift_Plugins_Logger
case '!!': case '!!':
$level = \yii\log\Logger::LEVEL_WARNING; $level = \yii\log\Logger::LEVEL_WARNING;
break; break;
} default:
$level = \yii\log\Logger::LEVEL_INFO;
if (!isset($level)) {
$level = \yii\log\Logger::LEVEL_INFO;
} }
Yii::getLogger()->log($entry, $level, __METHOD__); Yii::getLogger()->log($entry, $level, __METHOD__);

41
Mailer.php

@ -14,25 +14,27 @@ use yii\mail\BaseMailer;
/** /**
* Mailer implements a mailer based on SwiftMailer. * Mailer implements a mailer based on SwiftMailer.
* *
* To use Mailer, you should configure it in the application configuration like the following, * To use Mailer, you should configure it in the application configuration like the following:
* *
* ~~~ * ```php
* 'components' => [ * [
* ... * 'components' => [
* 'mailer' => [ * 'mailer' => [
* 'class' => 'yii\swiftmailer\Mailer', * 'class' => 'yii\swiftmailer\Mailer',
* 'transport' => [ * 'transport' => [
* 'class' => 'Swift_SmtpTransport', * 'class' => 'Swift_SmtpTransport',
* 'host' => 'localhost', * 'host' => 'localhost',
* 'username' => 'username', * 'username' => 'username',
* 'password' => 'password', * 'password' => 'password',
* 'port' => '587', * 'port' => '587',
* 'encryption' => 'tls', * 'encryption' => 'tls',
* ],
* ], * ],
* // ...
* ], * ],
* ... * // ...
* ], * ],
* ~~~ * ```
* *
* You may also skip the configuration of the [[transport]] property. In that case, the default * You may also skip the configuration of the [[transport]] property. In that case, the default
* PHP `mail()` function will be used to send emails. * PHP `mail()` function will be used to send emails.
@ -41,7 +43,7 @@ use yii\mail\BaseMailer;
* You can also specify the list of plugins, which should be registered to the transport using * You can also specify the list of plugins, which should be registered to the transport using
* 'plugins' key. For example: * 'plugins' key. For example:
* *
* ~~~ * ```php
* 'transport' => [ * 'transport' => [
* 'class' => 'Swift_SmtpTransport', * 'class' => 'Swift_SmtpTransport',
* 'constructArgs' => ['localhost', 25] * 'constructArgs' => ['localhost', 25]
@ -52,17 +54,17 @@ use yii\mail\BaseMailer;
* ], * ],
* ], * ],
* ], * ],
* ~~~ * ```
* *
* To send an email, you may use the following code: * To send an email, you may use the following code:
* *
* ~~~ * ```php
* Yii::$app->mailer->compose('contact/html', ['contactForm' => $form]) * Yii::$app->mailer->compose('contact/html', ['contactForm' => $form])
* ->setFrom('from@domain.com') * ->setFrom('from@domain.com')
* ->setTo($form->email) * ->setTo($form->email)
* ->setSubject($form->subject) * ->setSubject($form->subject)
* ->send(); * ->send();
* ~~~ * ```
* *
* @see http://swiftmailer.org * @see http://swiftmailer.org
* *
@ -83,6 +85,7 @@ class Mailer extends BaseMailer
* @var bool whether to enable writing of the SwiftMailer internal logs using Yii log mechanism. * @var bool whether to enable writing of the SwiftMailer internal logs using Yii log mechanism.
* If enabled [[Logger]] plugin will be attached to the [[transport]] for this purpose. * If enabled [[Logger]] plugin will be attached to the [[transport]] for this purpose.
* @see Logger * @see Logger
* @since 2.0.4
*/ */
public $enableSwiftMailerLogging = false; public $enableSwiftMailerLogging = false;

Loading…
Cancel
Save