File tree 3 files changed +83
-0
lines changed
3 files changed +83
-0
lines changed Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Prokl \BitrixSymfonyRouterBundle \Event ;
4
+
5
+ use Symfony \Component \HttpFoundation \Request ;
6
+ use Symfony \Component \HttpFoundation \Response ;
7
+ use Symfony \Contracts \EventDispatcher \Event ;
8
+
9
+ /**
10
+ * Class AfterHandleRequestEvent
11
+ * @package Proklung\Symfony\Router\Event
12
+ *
13
+ * @since 16.08.2021
14
+ */
15
+ class AfterHandleRequestEvent extends Event
16
+ {
17
+ /**
18
+ * @var Request $request
19
+ */
20
+ private $ request ;
21
+
22
+ /**
23
+ * @var Response $response
24
+ */
25
+ private $ response ;
26
+
27
+ /**
28
+ * @param Request $request Request.
29
+ * @param Response $response Response.
30
+ */
31
+ public function __construct (Request $ request , Response $ response )
32
+ {
33
+ $ this ->request = $ request ;
34
+ $ this ->response = $ response ;
35
+ }
36
+
37
+ /**
38
+ * @return Request
39
+ */
40
+ public function getRequest (): Request
41
+ {
42
+ return $ this ->request ;
43
+ }
44
+
45
+ /**
46
+ * @return Response
47
+ */
48
+ public function getResponse (): Response
49
+ {
50
+ return $ this ->response ;
51
+ }
52
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Proklung \Symfony \Router \Event ;
4
+
5
+ /**
6
+ * Interface KernelCustomEvents
7
+ *
8
+ * @package Proklung\Symfony\Router\Event
9
+ * @since 16.08.2021
10
+ */
11
+ interface KernelCustomEvents
12
+ {
13
+ /**
14
+ * Кастомное событие, запускаемое после обработки запроса роутером.
15
+ *
16
+ * Происходит после обработки запроса роутером, но до события kernel.terminate.
17
+ * Необходимо, чтобы можно было как-то сопрягать запросы Symfony и нативный контекст.
18
+ *
19
+ * @Event("Prokl\BitrixSymfonyRouterBundle\Event\AfterHandleRequestEvent")
20
+ */
21
+ public const AFTER_HANDLE_REQUEST = 'kernel.after_handle_request ' ;
22
+ }
Original file line number Diff line number Diff line change 4
4
5
5
use CHTTP ;
6
6
use Exception ;
7
+ use Prokl \BitrixSymfonyRouterBundle \Event \AfterHandleRequestEvent ;
7
8
use Proklung \Symfony \Router \Controllers \ErrorControllerInterface ;
9
+ use Proklung \Symfony \Router \Event \KernelCustomEvents ;
8
10
use Proklung \Symfony \Router \Listeners \StringResponseListener ;
9
11
use Symfony \Component \EventDispatcher \EventDispatcher ;
10
12
use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
@@ -161,6 +163,13 @@ public function handle(): void
161
163
);
162
164
163
165
$ response = $ framework ->handle ($ this ->request );
166
+
167
+ // Кастомное событие kernel.after_handle_request
168
+ $ this ->dispatcher ->dispatch (
169
+ new AfterHandleRequestEvent ($ this ->request , $ response ),
170
+ KernelCustomEvents::AFTER_HANDLE_REQUEST
171
+ );
172
+
164
173
// Инициирует событие kernel.terminate.
165
174
try {
166
175
$ framework ->terminate ($ this ->request , $ response );
You can’t perform that action at this time.
0 commit comments