@@ -9,14 +9,14 @@ into the lifecycle via events. Instead of reinventing
9
9
the wheel, it uses the Symfony EventDispatcher component to do the work::
10
10
11
11
12
- The ``MessageEvent `` Event
12
+ The ``MessageEvent::class `` Event
13
13
--------------------------
14
14
15
15
**Typical Purposes **: Doing something before the message is send (like logging
16
16
which message is going to be send), or displaying something about the event
17
17
to be executed.
18
18
19
- Just before executing any command , the ``MessageEvent `` event is
19
+ Just before send the message , the event class ``MessageEvent `` is
20
20
dispatched. Listeners receive a
21
21
:class: `Symfony\\ Component\\ Notifier\\ Event\\ MessageEvent ` event::
22
22
@@ -27,12 +27,50 @@ dispatched. Listeners receive a
27
27
$message = $event->getMessage();
28
28
29
29
// log something
30
- $this->logger(sprintf("Message with subject: %s will be send to %s, $message->getSubject(), $message->getRecipientId()");
30
+ $this->logger(sprintf("Message with subject: %s will be send to %s, $message->getSubject(), $message->getRecipientId()")) ;
31
31
});
32
32
33
+ The ``FailedMessageEvent `` Event
34
+ --------------------------------
35
+
36
+ **Typical Purposes **: Doing something before the exception is thrown (Retry to send the message or log additional informations).
37
+
38
+ Whenever an exception is thrown while sending the message, the event class ``FailedMessageEvent `` is
39
+ dispatched. A listener can do anything useful before the exception is thrown.
40
+
41
+ Listeners receive a
42
+ :class: `Symfony\\ Component\\ Notifier\\ Event\\ FailedMessageEvent ` event::
43
+
44
+ use Symfony\Component\Notifier\Event\FailedMessageEvent;
45
+
46
+ $dispatcher->addListener(FailedMessageEvent::class, function (FailedMessageEvent $event) {
47
+ // gets the message instance
48
+ $message = $event->getMessage();
49
+
50
+ // gets the error instance
51
+ $error = $event->getError();
52
+
53
+ // log something
54
+ $this->logger(sprintf("The message with subject: %s has not been sent successfully. The error is: %s, $message->getSubject(), $error->getMessage()"));
55
+ });
56
+
57
+
33
58
The ``SentMessageEvent `` Event
34
- --------------------------
59
+ ------------------------------
35
60
36
- **Typical Purposes **: Doing something when the message is sent (like retrieve the id returned
61
+ **Typical Purposes **: To perform some action when the message is successfully sent (like retrieve the id returned
37
62
when the message is sent).
38
63
64
+ After the message has been successfully sent, the event class ``SentMessageEvent `` is
65
+ dispatched. Listeners receive a
66
+ :class: `Symfony\\ Component\\ Notifier\\ Event\\ SentMessageEvent ` event::
67
+
68
+ use Symfony\Component\Notifier\Event\SentMessageEvent;
69
+
70
+ $dispatcher->addListener(SentMessageEvent::class, function (SentMessageEvent $event) {
71
+ // gets the message instance
72
+ $message = $event->getOriginalMessage();
73
+
74
+ // log something
75
+ $this->logger(sprintf("The message has been successfully sent and have id: %s, $message->getMessageId()"));
76
+ });
0 commit comments