@@ -19,6 +19,28 @@ install messenger before using it:
19
19
20
20
$ composer require messenger
21
21
22
+ Message
23
+ -------
24
+
25
+ Before you can send a message, you must create it first. There is no specific
26
+ requirement for a message, except it should be serializable and unserializable
27
+ by a Symfony Serializer instance::
28
+
29
+ // src/Message/SmsNotification.php
30
+ namespace App\Message;
31
+
32
+ class SmsNotification
33
+ {
34
+ private $content;
35
+
36
+ public function __construct(string $content)
37
+ {
38
+ $this->content = $content;
39
+ }
40
+
41
+ // ...getters
42
+ }
43
+
22
44
Using the Messenger Service
23
45
---------------------------
24
46
@@ -28,15 +50,15 @@ you need it, like in a controller::
28
50
// src/Controller/DefaultController.php
29
51
namespace App\Controller;
30
52
31
- use App\Message\SendNotification ;
53
+ use App\Message\SmsNotification ;
32
54
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
33
55
use Symfony\Component\Messenger\MessageBusInterface;
34
56
35
57
class DefaultController extends AbstractController
36
58
{
37
59
public function index(MessageBusInterface $bus)
38
60
{
39
- $bus->dispatch(new SendNotification ('A string to be sent...'));
61
+ $bus->dispatch(new SmsNotification ('A string to be sent...'));
40
62
}
41
63
}
42
64
@@ -46,14 +68,15 @@ Registering Handlers
46
68
In order to do something when your message is dispatched, you need to create a
47
69
message handler. It's a class with an ``__invoke `` method::
48
70
49
- // src/MessageHandler/MyMessageHandler .php
71
+ // src/MessageHandler/SmsNotificationHandler .php
50
72
namespace App\MessageHandler;
51
73
74
+ use App\Message\SmsNotification;
52
75
use Symfony\Component\Messenger\Handler\MessageHandlerInterface;
53
76
54
- class MyMessageHandler implements MessageHandlerInterface
77
+ class SmsNotificationHandler implements MessageHandlerInterface
55
78
{
56
- public function __invoke(MyMessage $message)
79
+ public function __invoke(SmsNotification $message)
57
80
{
58
81
// do something with it.
59
82
}
@@ -72,7 +95,7 @@ If you're not using service autoconfiguration, then you need to add this config:
72
95
73
96
# config/services.yaml
74
97
services :
75
- App\MessageHandler\MyMessageHandler :
98
+ App\MessageHandler\SmsNotificationHandler :
76
99
tags : [messenger.message_handler]
77
100
78
101
.. code-block :: xml
@@ -85,7 +108,7 @@ If you're not using service autoconfiguration, then you need to add this config:
85
108
http://symfony.com/schema/dic/services/services-1.0.xsd" >
86
109
87
110
<services >
88
- <service id =" App\MessageHandler\MyMessageHandler " >
111
+ <service id =" App\MessageHandler\SmsNotificationHandler " >
89
112
<tag name =" messenger.message_handler" />
90
113
</service >
91
114
</services >
@@ -94,9 +117,9 @@ If you're not using service autoconfiguration, then you need to add this config:
94
117
.. code-block :: php
95
118
96
119
// config/services.php
97
- use App\MessageHandler\MyMessageHandler ;
120
+ use App\MessageHandler\SmsNotificationHandler ;
98
121
99
- $container->register(MyMessageHandler ::class)
122
+ $container->register(SmsNotificationHandler ::class)
100
123
->addTag('messenger.message_handler');
101
124
102
125
.. note ::
0 commit comments