Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
/*
4
 * This file is part of the Symfony package.
5
 *
6
 * (c) Fabien Potencier <fabien@symfony.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
 
12
namespace Symfony\Component\Mailer\Event;
13
 
14
use Symfony\Component\Mime\RawMessage;
15
 
16
/**
17
 * @author Fabien Potencier <fabien@symfony.com>
18
 */
19
class MessageEvents
20
{
21
    /**
22
     * @var MessageEvent[]
23
     */
24
    private array $events = [];
25
 
26
    /**
27
     * @var array<string, bool>
28
     */
29
    private array $transports = [];
30
 
31
    public function add(MessageEvent $event): void
32
    {
33
        $this->events[] = $event;
34
        $this->transports[$event->getTransport()] = true;
35
    }
36
 
37
    public function getTransports(): array
38
    {
39
        return array_keys($this->transports);
40
    }
41
 
42
    /**
43
     * @return MessageEvent[]
44
     */
45
    public function getEvents(string $name = null): array
46
    {
47
        if (null === $name) {
48
            return $this->events;
49
        }
50
 
51
        $events = [];
52
        foreach ($this->events as $event) {
53
            if ($name === $event->getTransport()) {
54
                $events[] = $event;
55
            }
56
        }
57
 
58
        return $events;
59
    }
60
 
61
    /**
62
     * @return RawMessage[]
63
     */
64
    public function getMessages(string $name = null): array
65
    {
66
        $events = $this->getEvents($name);
67
        $messages = [];
68
        foreach ($events as $event) {
69
            $messages[] = $event->getMessage();
70
        }
71
 
72
        return $messages;
73
    }
74
}