79551502da2e66f8b3bd96e5662a2dd705e9b08d
[yaffs-website] / web / modules / contrib / devel / webprofiler / src / DataCollector / MailDataCollector.php
1 <?php
2
3 namespace Drupal\webprofiler\DataCollector;
4
5 use Drupal\Core\Mail\MailInterface;
6 use Drupal\Core\StringTranslation\StringTranslationTrait;
7 use Drupal\webprofiler\DrupalDataCollectorInterface;
8 use Symfony\Component\HttpFoundation\Request;
9 use Symfony\Component\HttpFoundation\Response;
10 use Symfony\Component\HttpKernel\DataCollector\DataCollector;
11
12 /**
13  * Class MailDataCollector
14  */
15 class MailDataCollector extends DataCollector implements DrupalDataCollectorInterface {
16
17   use StringTranslationTrait, DrupalDataCollectorTrait;
18
19   /**
20    * @var
21    */
22   private $messages;
23
24   /**
25    *
26    */
27   public function __construct() {
28     $this->messages = [];
29   }
30
31   /**
32    * Collects data for the given Request and Response.
33    *
34    * @param Request $request A Request instance
35    * @param Response $response A Response instance
36    * @param \Exception $exception An Exception instance
37    *
38    * @api
39    */
40   public function collect(Request $request, Response $response, \Exception $exception = NULL) {
41     $this->data['mail'] = $this->messages;
42   }
43
44   /**
45    * @param $message
46    * @param \Drupal\Core\Mail\MailInterface $mail
47    */
48   public function addMessage($message, MailInterface $mail) {
49     $class = get_class($mail);
50     $method = $this->getMethodData($class, 'mail');
51
52     $this->messages[] = [
53       'message' => $message,
54       'method' => $method,
55     ];
56   }
57
58   /**
59    * @return int
60    */
61   public function getMailSent() {
62     return count($this->data['mail']);
63   }
64
65   /**
66    * Returns the name of the collector.
67    *
68    * @return string The collector name
69    *
70    * @api
71    */
72   public function getName() {
73     return 'mail';
74   }
75
76   /**
77    * Returns the datacollector title.
78    *
79    * @return string
80    *   The datacollector title.
81    */
82   public function getTitle() {
83     return $this->t('Mail');
84   }
85
86   /**
87    * {@inheritdoc}
88    */
89   public function getPanelSummary() {
90     return $this->t('Total: @count', ['@count' => $this->getMailSent()]);
91   }
92
93   /**
94    * {@inheritdoc}
95    */
96   public function getIcon() {
97     return 'iVBORw0KGgoAAAANSUhEUgAAABcAAAAcCAYAAACK7SRjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6N0NEOTU1MjM0OThFMTFFMDg3NzJBNTE2ODgwQzMxMzQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6N0NEOTU1MjQ0OThFMTFFMDg3NzJBNTE2ODgwQzMxMzQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMEQ5OTQ5QzQ5OEMxMUUwODc3MkE1MTY4ODBDMzEzNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3Q0Q5NTUyMjQ5OEUxMUUwODc3MkE1MTY4ODBDMzEzNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpkRnSAAAAJ0SURBVHjaYvz//z8DrQATAw3BqOFYAaO9vT1FBhw4cGCAXA5MipxBQUHT3r17l0AVAxkZ/wkLC89as2ZNIcjlYkALXKnlWqBZTH/+/PEDmQsynLW/v3+NoaHhN2oYDjJn8uTJK4BMNpDhPwsLCwOKiop2+fn5vafEYC8vrw8gc/Lz8wOB3B8gw/nev38vn5WV5eTg4LA/Ly/vESsrK2npmYmJITU19SnQ8L0gc4DxpwgyF2S4EEjB58+f+crLy31YWFjOt7S0XBYUFPxHjMEcHBz/6+rqboqJiZ0qKSnxBpkDlRICGc4MU/j792+2CRMm+L18+fLSxIkTDykoKPzBZ7CoqOi/np6eE8rKylvb29v9fvz4wYEkzYKRzjk5OX/LyMjcnDRpEkjjdisrK6wRraOj8wvokAMLFy788ejRoxcaGhrPCWai4ODgB8DUE3/mzBknYMToASNoMzAfvEVW4+Tk9LmhoWFbTU2NwunTpx2BjiiMjo6+hm4WCzJHUlLyz+vXrxkfP36sDOI/ffpUPikpibe7u3sLsJjQW7VqlSrQxe+Avjmanp7u9PbtWzGQOmCCkARmmu/m5uYfT548yY/V5UpKSl+2b9+uiiz26dMnIWBSDTp27NgdYGrYCIzwE7m5uR4wg2Hg/PnzSsDI/QlKOcjZ3wGUBLm5uf+DwLdv38gub4AG/xcSEvr35s0bZmCB5sgCE/z69SsjyDJKMtG/f/8YQQYD8wkoGf8H51AbG5sH1CpbQBnQ09PzBiiHgoIFFHlBQGwLxLxUMP8dqJgH4k3gIhfIkAKVYkDMTmmhCHIxEL8A4peMo02L4WU4QIABANxZAoDIQDv3AAAAAElFTkSuQmCC';
98   }
99 }