Notifications d'événement

Quel moyen pour bien faire ?

a marqué ce sujet comme résolu.

Bonjour à tous !

Je cherche à faire un système de notifications par mail par rapport à des événements dans mon application Symfony — pour ne rien vous cacher, je travaille sur un ERP, et l'idée serait de notifier les utilisateurs quand il y a eu une modification d'une tâche que ce soit au niveau de ses données ou de commentaires.

Du coup, j'imaginais assez utiliser Monolog pour effectuer le travail : au final, c'est une forme de journal, mais sur abonnement "particulier". Les actions ayant lieu ponctuellement, je peux ainsi envoyer des e-mails quasiment instantanément, et enregistrer les événements en base de données pour le système de notifications.
Le truc dont je n'arrive pas à me rendre compte, c'est par rapport aux canaux et/ou utilisateurs.

Forcément, il y aura plusieurs utilisateurs qui seront notifiés du même événement, mais pas tous. De plus, j'aurai probablement plusieurs moyens de notifier l'utilisateur : d'une part les mails, et d'autre part un système interne avec notification via l'API HTML5 ad hoc. Ces deux méthodes peuvent être choisies par les utilisateurs, et il n'est pas impossible qu'ils prennent les deux méthodes.

  1. La question que je me pose, c'est la manière de gérer à qui envoyer quoi. J'avais imaginé avoir un channel par utilisateur, mais je me pose la question de la gestion des handlers : comment faire pour que la notification soit envoyée par le biais adéquat sur le channel choisi ?
  2. A l'inverse, je pourrais imaginer avoir un channel pour tous les utilisateurs, et les handlers décident pour envoyer à telle ou telle personne.

Ne connaissant de loin pas toutes les finesses de Symfony, est-ce que quelqu'un aurait des arguments contre l'une ou l'autre des possibilités, ou en aurait même une autre ?

Merci d'avance  ^^

+0 -0

Je ne suis pas sûr qu'utiliser Monolog pour faire ça soit une bonne idée, étant donné que son rôle est de faire des logs destinés au debug/info pour l'équipe qui maintient le projet. En revanche, tu peux profiter du composant EventDispatcher d'une part parce que ça me semble clairement plus adapté, d'autre part parce que tu peux gérer sur un même event deux listener qui auront une tâche différente : envoyer des mails, ou manager tes notifs API.

+0 -0

En fait, si je partais avec l'idée de Monolog, c'est parce qu'au final, ce que je souhaite faire est aussi du logging, mais sur certains événements seulement. Mais c'est pas impossible que j'aie mélangé les composants :P

Merci pour la piste, je vais creuser de ce côté  :)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte