File tree Expand file tree Collapse file tree 3 files changed +83
-0
lines changed Expand file tree Collapse file tree 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 44
55use CHTTP ;
66use Exception ;
7+ use Prokl \BitrixSymfonyRouterBundle \Event \AfterHandleRequestEvent ;
78use Proklung \Symfony \Router \Controllers \ErrorControllerInterface ;
9+ use Proklung \Symfony \Router \Event \KernelCustomEvents ;
810use Proklung \Symfony \Router \Listeners \StringResponseListener ;
911use Symfony \Component \EventDispatcher \EventDispatcher ;
1012use Symfony \Component \EventDispatcher \EventDispatcherInterface ;
@@ -161,6 +163,13 @@ public function handle(): void
161163 );
162164
163165 $ 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+
164173 // Инициирует событие kernel.terminate.
165174 try {
166175 $ framework ->terminate ($ this ->request , $ response );
You can’t perform that action at this time.
0 commit comments