Події життєвого циклу серверу

Версія 2.1 додана 2024/07/11 12:00 автором Ashterix

Події буди додані в JsonRpcBundle з версії 7.0

Події життєвого циклу серверу 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
    {
       // Обробка події
   }
}

Після створення лістенера, він автоматично зареєструється завдяки атрибутам. Для більш детальної інформації дивіться документацію Symfony щодо подій: [Symfony Event System](https://symfony.com/doc/current/event_dispatcher.html).

Це дозволить вашому лістенеру підписуватися на події і виконувати відповідні дії під час життєвого циклу RPC сервера.