(16) 981791110 contato@policast.studio

O que é o sistema de bus-eventos do Symfony?

O sistema de bus-eventos do Symfony é uma ferramenta que permite a manipulação e execução de eventos de forma assíncrona. Ele permite que os eventos sejam levantados e manipulados em tempo real, evitando a necessidade de processamento em lotes ou espera por processos.

Como funciona o sistema de bus-eventos do Symfony?

O sistema de bus-eventos do Symfony é composto por diferentes componentes, sendo eles:

  • EventDispatcher: responsável pelas operações de despacho e manipulação dos eventos.
  • Event: representa uma ação ou ocorrência únicas que podem ser manipuladas pelo sistema.
  • EventSubscriber: um ouvinte de eventos que é registrado para ouvir eventos específicos.

Quando um evento é levantado pela aplicação, o EventDispatcher é ativado e o evento é despachado. Em seguida, o EventSubscriber, que é registrado para ouvir o evento específico, é acionado e manipula o evento de acordo com suas necessidades.

Como utilizar o sistema de bus-eventos do Symfony?

Para utilizar o sistema de bus-eventos do Symfony, é preciso seguir alguns passos.

  1. Definir eventos: Crie uma classe para o evento que deseja levantar e manipular. A classe deve estender a classe base “Event”.
  2. namespace AppEvent;

    use SymfonyComponentEventDispatcherEvent;

    class ExemploEvento extends Event
    {
    // Propriedades e métodos específicos do evento
    }

  3. Definir ouvintes de eventos: Crie uma classe para o ouvinte de eventos, que estende a classe “EventSubscriberInterface”. Na classe, defina o(s) método(s) que manipulará(ão) o(s) evento(s) ouvido(s) através da anotação “@EventSubscriber”.
  4. namespace AppSubscriber;

    use SymfonyComponentEventDispatcherEventSubscriberInterface;
    use SymfonyComponentEventDispatcherEventSubscriber;

    class ExemploSubscriber implements EventSubscriberInterface
    {
    public static function getSubscribedEvents()
    {
    return [
    ExemploEvento::class => 'onExemploEvento',
    ];
    }

    public function onExemploEvento(ExemploEvento $event)
    {
    // Código para manipular o evento
    }

    // Outros métodos para manipulação de eventos
    }

  5. Criar e levantar eventos: Para criar e levantar um evento, crie uma instância da classe de evento e use o método “dispatch” do EventDispatcher para despachá-lo.
  6. use AppEventExemploEvento;
    use SymfonyComponentEventDispatcherEventDispatcherInterface;

    class AlgumaClasse
    {
    private $dispatcher;

    public function __construct(EventDispatcherInterface $dispatcher)
    {
    $this->dispatcher = $dispatcher;
    }

    public function algumMetodo()
    {
    // Criando uma instância do evento
    $evento = new ExemploEvento();

    // Despachando o evento
    $this->dispatcher->dispatch($evento);
    }
    }

Dessa forma, o sistema de bus-eventos do Symfony é utilizado para manipular eventos de maneira assíncrona.