ycliper

Популярное

Музыка Кино и Анимация Автомобили Животные Спорт Путешествия Игры Юмор

Интересные видео

2025 Сериалы Трейлеры Новости Как сделать Видеоуроки Diy своими руками

Топ запросов

смотреть а4 schoolboy runaway турецкий сериал смотреть мультфильмы эдисон
Скачать

Symfony6 et Symfony7 Techwall #72 Le système d'évènement l'EventSubscriber

Автор: Tech Wall

Загружено: 2022-01-10

Просмотров: 4963

Описание: Symfony6 et Symfony7 Techwall #72 Le système d'évènement l'EventSubscriber

https://github.com/aymensellaouti/sf6...

Une deuxième méthode d’écoute sur des événements est l’utilisation des EventSubscriber.
Un eventSubscriber est une classe qui définit une ou plusieurs méthodes qui écoute sur un ou plusieurs événements.
La différence majeure avec les EventsListener est que les Subscribers connaissent toujours les événements sur lesquels ils écoutent au contraire des EventListener.

Un eventSubscriber est une classe qui implémente l’interface EventSubscriberInterface.
Cette interface nous demande d’implémenter la méthode getSubscribedEvents.
Cette méthode doit retourner un tableau des noms des événements auxquels le subscriber veut écouter. Chaque élément du tableau peut avoir comme clé le nom de l’événement à écouter et comme valeur une des options suivantes :
Le nom de la méthode à appeler (la priorité à comme valeur par défaut 0)
['eventName' = 'methodName']
Un tableau avec le nom de la méthode à appeler et la priorité
['eventName' = ['methodName', $priority]]
Un tableau de tableau composé des deux précédentes formes
['eventName' = [['methodName1', $priority], ['methodName2']]]

Les Listeners et les Subscribers peuvent être utilisés indistinctement dans la même application.
La décision d'utiliser l'un ou l'autre d'entre eux est généralement une question de goût personnel. Cependant, il y a quelques avantages mineurs pour chacun d'eux :

Les Subscribers sont plus faciles à réutiliser car la connaissance des événements est conservée dans la classe plutôt que dans la définition du service. C'est la raison pour laquelle Symfony utilise les Subscribers en interne ;
Les Listeners sont plus flexibles car les bundles peuvent activer ou désactiver chacun d'eux de manière conditionnelle en fonction d'une valeur de configuration.


Le système d’événements de Symfony utilise les priorités afin de savoir quel ordre d’écouteur déclencher.
La propriété ayant la valeur la plus haute sera exécuté en premier.
Le tag priority vous permet de définir la priorité de votre écouteur


Afin de finaliser notre système, et après avoir créer l’événement et le dispatcher, il faut permettre aux intéressés par cet événement de l’écouter, se greffer dessus et exécuter le traitement souhaité.
Il y a deux méthodes pour permettre cet écoute :
Créer un EventListener
Créer un EventSubscriber

Afin d’utiliser un EventListner, il faut créer un service et le tagger.
Le tag permettant de dire à l’EventDispatcher voici un EventListener est le tag name avec la valeur kernel.event_listener.
Le tag permettant d’identifier l’événement à écouter est event
Le tag permettant d’identifier la méthode à exécuter est method


Afin d’avoir un code extensible et basée sur des plugins qu’on peut ajouter avant ou après l’exécution d’un code, Symfony nous propose le composant EventDispatcher.
L’idée est de pouvoir ajouter des plugins avec des fonctionnalités qu’on peut greffer sans interférer dans les autres plugins.

L’EventDispatcher de Symfony utilises deux patron de conception pour le faire : Le Médiateur et l’observateur.

L’observateur va nous permettre de faire en sorte qu’un ou plusieurs observateurs sont intéressés par un ou plusieurs sujets. Chaque fois que quelque chose de neuf se produit dans un sujet, tous ses observateurs sont notifiés.

Le médiateur (La classe EventDispatcher) va nous permettre d’encapsuler la manière avec laquelle cet ensemble d’objets vont interagir. Il sera l’intermédiaire.

Pour résumer, le système d’événements de Symfony se base sur :

Un événement (Event)

Un gestionnaire d’événement (Dispatcher)

Les écouteurs sur les événement (Listner)

Не удается загрузить Youtube-плеер. Проверьте блокировку Youtube в вашей сети.
Повторяем попытку...
Symfony6 et Symfony7 Techwall #72 Le système d'évènement l'EventSubscriber

Поделиться в:

Доступные форматы для скачивания:

Скачать видео

  • Информация по загрузке:

Скачать аудио

Похожие видео

#50 Création d'un ransomware avec python #1

#50 Création d'un ransomware avec python #1

Что устраивает Москву?

Что устраивает Москву?

Музыка для работы за компьютером | Фоновая музыка для концентрации и продуктивности

Музыка для работы за компьютером | Фоновая музыка для концентрации и продуктивности

#6 Création d'un Backdoor avec netcat (Partie 1)

#6 Création d'un Backdoor avec netcat (Partie 1)

Microfrontends with Microservices | React, Spring Boot, Keycloak, Docker

Microfrontends with Microservices | React, Spring Boot, Keycloak, Docker

Разработка с помощью Gemini 3, AI Studio, Antigravity и Nano Banana | Подкаст Agent Factory

Разработка с помощью Gemini 3, AI Studio, Antigravity и Nano Banana | Подкаст Agent Factory

Экспресс-курс RAG для начинающих

Экспресс-курс RAG для начинающих

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

Чем ОПАСЕН МАХ? Разбор приложения специалистом по кибер безопасности

A deep dive into Large Language Models

A deep dive into Large Language Models

Kubernetes — Простым Языком на Понятном Примере

Kubernetes — Простым Языком на Понятном Примере

#48 Création d’un malware keylogger avec python

#48 Création d’un malware keylogger avec python

#11 Metasploitable2 docker image et sqlmap sur DVWA

#11 Metasploitable2 docker image et sqlmap sur DVWA

Создавайте лучшие веб-приложения с Blazor в .NET 10

Создавайте лучшие веб-приложения с Blazor в .NET 10

Краткий обзор новой версии n8n 2.0  🚀

Краткий обзор новой версии n8n 2.0 🚀

Создайте ВСЁ, ЧТО УГОДНО, с Gemini 3 | Подкаст Agent Factory

Создайте ВСЁ, ЧТО УГОДНО, с Gemini 3 | Подкаст Agent Factory

NestJS CRUD Tutorial 2025 (Part 6) - CRUD operations : Module, Controller, Service

NestJS CRUD Tutorial 2025 (Part 6) - CRUD operations : Module, Controller, Service

Bomby, drony i 40 tysięcy dezerterów. Płk rez. Piotr Lewandowski: Front może pęknąć w każdej chwili

Bomby, drony i 40 tysięcy dezerterów. Płk rez. Piotr Lewandowski: Front może pęknąć w każdej chwili

Филипп Робертс: Что за чертовщина такая event loop? | JSConf EU 2014

Филипп Робертс: Что за чертовщина такая event loop? | JSConf EU 2014

Prompt Engineering: in context learning, few-shot and chain of thought prompting with LangChain

Prompt Engineering: in context learning, few-shot and chain of thought prompting with LangChain

Claude Code: полный гайд по AI-кодингу (хаки, техники и секреты)

Claude Code: полный гайд по AI-кодингу (хаки, техники и секреты)

© 2025 ycliper. Все права защищены.



  • Контакты
  • О нас
  • Политика конфиденциальности



Контакты для правообладателей: [email protected]