Події життєвого циклу серверу RPC
Цей документ описує події, які генерує RPC сервер під час свого життєвого циклу. Ви можете підписатися на ці події за допомогою Symfony лістенерів.
Подія | Опис | |
---|---|---|
rpc.request | Генерується при отриманні RPC запиту. Використовуйте цю подію для перевірки або модифікації запиту перед його обробкою. | |
rpc.async_request | Генерується при отриманні асинхронного RPC запиту. Використовуйте її для обробки або модифікації асинхронних запитів перед їх виконанням. | |
rpc.async_output | Генерується при відправці асинхронної відповіді. Ви можете використовувати її для перевірки або модифікації асинхронних відповідей перед їх відправкою. | |
rpc.pre_execute | Генерується перед виконанням RPC методу. Використовуйте цю подію для підготовки або модифікації викликів перед їх виконанням. | |
rpc.post_execute | Генерується після виконання RPC методу. Ви можете використовувати цю подію для обробки результатів або виконання дій після завершення виклику методу. | |
rpc.response | Генерується перед відправкою RPC відповіді. Використовуйте цю подію для перевірки або модифікації відповідей перед їх відправкою клієнту. | |
rpc.error | Генерується при виникненні помилки під час обробки RPC запиту. Ви можете використовувати її для обробки помилок або виконання дій у випадку помилки. |
Підписка на події за допомогою Symfony лістенерів
Для підписки на ці події, ви можете створити Symfony лістенери. Приклад базового лістенера виглядає наступним чином:
<?php
namespace App\EventListener;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Ufo\JsonRpcBundle\Event\RpcRequestEvent;
#[AsEventListener(event: RpcRequestEvent::NAME, method: 'onRpcRequest')]
class RpcEventListener
{
public function onRpcRequest(RpcRequestEvent $event): void
{
// Обробка події
}
}
namespace App\EventListener;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
use Ufo\JsonRpcBundle\Event\RpcRequestEvent;
#[AsEventListener(event: RpcRequestEvent::NAME, method: 'onRpcRequest')]
class RpcEventListener
{
public function onRpcRequest(RpcRequestEvent $event): void
{
// Обробка події
}
}
Після створення лістенера, він автоматично зареєструється завдяки атрибутам. Для більш детальної інформації дивіться документацію Symfony щодо подій: [Symfony Event System](https://symfony.com/doc/current/event_dispatcher.html).
Це дозволить вашому лістенеру підписуватися на події і виконувати відповідні дії під час життєвого циклу RPC сервера.