Події життєвого циклу
Перелік подій
RPC сервер під час свого життєвого циклу використовує власні події, що базуються на Symfony Event
Подія | Опис | |
---|---|---|
rpc.request class RpcRequestEvent | Відбувається при отриманні RPC запиту. Використовуйте цю подію для перевірки або модифікації запиту перед його обробкою. | |
rpc.pre_execute class RpcPreExecuteEvent | Відбувається перед виконанням RPC методу. Використовуйте цю подію для підготовки або модифікації викликів перед їх виконанням. | |
rpc.post_execute class RpcPostExecuteEvent | Відбувається після виконання RPC методу. Ви можете використовувати цю подію для обробки результатів або виконання дій після завершення виклику методу. | |
rpc.response class RpcResponseEvent | Відбувається перед відправкою RPC відповіді. Використовуйте цю подію для перевірки або модифікації відповідей перед їх відправкою клієнту. | |
rpc.error class RpcErrorEvent | Відбувається при виникненні помилки під час обробки RPC запиту. Ви можете використовувати її для обробки помилок або виконання дій у випадку помилки. | |
rpc.async_request class RpcAsyncRequestEvent | Відбувається при отриманні асинхронного RPC запиту. Використовуйте її для обробки або модифікації асинхронних запитів перед їх виконанням. | |
rpc.async_output class RpcAsyncOutputEvent | Відбувається при відправці асинхронної відповіді. Ви можете використовувати її для перевірки або модифікації асинхронних відповідей перед їх відправкою. |
Підписка на події за допомогою Symfony лістенерів
Для підписки на ці події, ви можете створити Symfony лістенери. Приклад базового лістенера виглядає наступним чином:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace App\EventListener;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Ufo\JsonRpcBundle\Event\RpcRequestEvent;
use Ufo\JsonRpcBundle\Event\RpcEvent;
#[AsEventListener(event: RpcEvent::REQUEST, method: 'onRpcRequest')]
class RpcEventListener
{
public function onRpcRequest(RpcRequestEvent $event): void
{
// your own event handler
}
}
Після створення лістенера, він автоматично зареєструється завдяки атрибутам. Для більш детальної інформації дивіться документацію Symfony щодо подій: Symfony Event System
Це дозволить вашому лістенеру підписуватися на події і виконувати відповідні дії під час життєвого циклу RPC сервера.