IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[SF6.1] EventSubscriber, onLoginSuccess envoyer un mail


Sujet :

Symfony PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    mars 2005
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : mars 2005
    Messages : 619
    Points : 196
    Points
    196
    Par défaut [SF6.1] EventSubscriber, onLoginSuccess envoyer un mail
    Bonjour à tous,

    Mon but est d'envoyer un mail à chaque succès de connexion, je me suis dit rien de plus simple
    J'ai donc fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php bin/console make:subscriber
    Je choisis le onLoginSuccess event.

    Jusqu'ici tout se passe bien.

    Un dd($event); s'affiche bien uniquement quand je m'identifie avec succès.

    Dans mon fichier LoginSubscriber.php, j'ajoute dans la fonction ci-dessous MailerInterface $mailer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public function onLoginSuccessEvent(
            LoginSuccessEvent $event,
            MailerInterface $mailer,
     
        ): void
        {
     
            dd($mailer);
     
        }
    et là hélas j'obtiens un message d'erreur qui est le suivant:

    App\EventSubscriber\LoginSubscriber::onLoginSuccessEvent(): Argument #2 ($mailer) must be of type Symfony\Component\Mailer\MailerInterface, string given, called in /home/bruno/workspace/pimotion/BO2/bo/vendor/symfony/event-dispatcher/EventDispatcher.php on line 270
    J'ai bien dans les use:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use Symfony\Component\Mailer\MailerInterface;
    Et $mailer avec phpstorm est bien reconnu comme MailerInterface

    Ai-je loupé quelque chose ? A-t-on le droit d'ajouter des paramètres dans la fonction onLoginSuccessEvent ?

    D'avance merci pour vos conseils !

    Bruno

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    mars 2005
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : mars 2005
    Messages : 619
    Points : 196
    Points
    196
    Par défaut
    ok j'ai trouvé !

    Il ne faut pas passer de paramètre supplémentaire à la fonction onLoginSuccessEvent, mais utiliser la fonction magique __construct comme ci-dessous !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    class LoginSubscriber implements EventSubscriberInterface
    {
     
        private MailerInterface $mailer;
     
        public function __construct(MailerInterface $mailer)
        {
            $this->mailer = $mailer;
        }
     
        public function onLoginSuccessEvent(
            LoginSuccessEvent $event
        ): void
        {
     
            dd($this->mailer);
     
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoyer un mail avec mon programme
    Par shrek dans le forum C++Builder
    Réponses: 8
    Dernier message: 06/12/2006, 13h27
  2. [VB6] Comment envoyer un mail HTML par Winsocks ?
    Par hedgehog dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/05/2004, 11h04
  3. [Debutant(e)]envoyer un mail en jsp
    Par SegmentationFault dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 19/01/2004, 19h28
  4. configurer sql pour envoyer des mails
    Par arwen dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/07/2003, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo