Bonjour,

J'utilise pour la première fois des listerner ou subscriber avec symfony.
J'ai suivis pas mal de tuto, je comprend en gros mais j'ai du mal à l'utiliser comme je le souhaiterai

Ce que je souhaite faire

Utiliser un subscriber ou listener pour vérifier si mes utilisateurs existe dans ma base de donnée.

Imaginons que je fasse une recherche de l'utilisateur 57 soit
localhost/users/57

J'aimerai qu'il vérifie et me retourne un réponse si il ne trouve pas avant même d'arriver dans le controller.
Pourquoi ? j'ai besoin de crée ma propre réponse et retourner une réponse correcte à mon utilsateur.

Ce que je veux

Quelqu'un qui pourrait me conseillé sur les méthodes à adopter, utiliser listener ou subscriber.
Et comment mettre cela en place pour une vérification dans la base de donné avant d'arriver dans le controller et retourner une réponse.

Je n'attend pas forcément de réponse, préçise, des conseils ou indications serait top !

Merci à tous d'avoir pris le temps de lire mon petit message ^^

3 réponses


Salut dans ton controller de recherche tu peux typer le paramêtre User

<?php

...

/**
* @Route("users/{id}", name="search_user")
*/
public function search(User $user): Response
{
    // symfony va injecter une entité User si elle existe en base de donnée
   // dans le cas contraire null

   if ($user !== null) {
        // return une reponse quand le user existe
   }

    // return quand le user n'existe pas
}

Sinon si tu veux aller loin c'est pas un listener ou subscriber dont tu as besoin mais plutôt un argument resolver

Bonjour Benard, merci de ta réponse.

Je crée ma propre api et sans apiplateform. Donc j'utilise postman, et le but est de retourner mes réponses en JSON.
Et justement, je dois faire une vérification avant le paramconverter User.

Si il n'existe pas je dois créer et retourner une réponse en format JSON.
Pour cela je dois utiliser les listener ou subscriber mais je ne vois pas comment m'y prendre.
Je dois utiliser kernel exception et souvent sur internet la documentation est un peu dépassé, où j'ai un peu de mal à saisir.

Bref merci d'avance.
Comment vérifier des éléments dans ma base de donné retourner une réponse avant d'arriver dans le param conveter ?

Quel objectif tu poursuit ? et pourquoi tu ne veux pas passer par le param converter ?
je veux comprendre