示例#1
0
 /**
  * Actually do the logging.
  *
  * @param EventInterface $event
  */
 public function log(EventInterface $event)
 {
     $params = $event->getParams();
     $method = '?';
     $exception = isset($params['exception']) ? $params['exception'] : '';
     $sql = isset($params['sql']) ? $params['sql'] : array();
     $this->logger->critical(get_class($event->getTarget()) . "::{$method} - {$exception}", $sql);
 }
示例#2
0
 private function send($recipients, $subject, $body)
 {
     $channel = false;
     $connection = false;
     try {
         $connection = $this->queueFactory->createConnection();
         $channel = $connection->channel();
         $channel->queue_declare('mail_queue', false, true, false, false);
         foreach ($recipients as $recipient) {
             $message = new Mail();
             $message->name = $recipient->name;
             $message->email = $recipient->address;
             $message->subject = $subject;
             $message->body = $body;
             $msg = new AMQPMessage($message->serialize(), ['delivery_mode' => 2]);
             $channel->basic_publish($msg, '', 'mail_queue');
         }
     } catch (\Exception $e) {
         while ($e) {
             $this->logger->critical(get_class($this) . ":send says: {$e->getMessage()}", $e->getTrace());
             $e = $e->getPrevious();
         }
     } finally {
         if (isset($channel) && $channel) {
             $channel->close();
         }
         if (isset($connection) && $connection) {
             $connection->close();
         }
     }
 }