Bonjour,

J'ai un souci pour surcharger le MailerInterface de FOSUserBundle

Voici ce que j'ai fait.

1- J'ai créer un fichier dans mon bundle qui hérite de FOS dans le repertore /Mailer (qui se nomme EmailListener.php).
2- La classe EmailListener hérite de l'interface MailerInterface qui se trouve dans me repertoire /Mailer
3- J'ai appeler mon service de messagerie dans le fichier de config.
4- J'ai indiqué a FOS d'utiliser mon systeme de messagerie

voici les contenus :

[EmailListener]
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
<?php
namespace MONBundle\Live\WlUserBundle\Listener;
 
use Symfony\Component\Templating\EngineInterface;
use Symfony\Component\DependencyInjection\Container;
use MONBundle\WlUserBundle\Mailer\MailerInterface;
use FOS\UserBundle\Model\UserInterface;
 
class EmailListener implements MailerInterface
{
    protected $mailer;
    protected $templating;
    protected $container;
    private $from = "no-reply@domaine.fr";
    private $reply = "contact@domaine.fr";
    private $name = "Equipe";
 
    public function __construct($mailer, EngineInterface $templating, Container $container)
    {
       $this->mailer = $mailer;
       $this->templating = $templating;
       $this->container = $container;
    }
 
    protected function sendMessage($to, $subject, $body)
    {
        $mail = \Swift_Message::newInstance();
 
        $mail   ->setFrom($this->from,$this->name)
                ->setTo("deyfabien@free.fr")
                ->setSubject($subject)
                ->setBody($body)
                ->setReplyTo($this->reply,$this->name)
                ->setContentType('text/html');
 
        $this->mailer->send($mail);
    }
 
    public function sendRefusMessage(){
        die('ici_refus');
    }
 
    public function sendContactFormMessage($infos){
        die('ici contact');
    }
 
    public function sendConfirmationEmailMessage(UserInterface $user
{           
        die('ici mail');
    }
 
    protected function sendWithDefaultValue(){
        $this->from = $this->container->getParameter('emailFrom');
        $this->name = $this->container->getParameter('emailFromName');
        $this->reply = $this->container->getParameter('emailReplyTo');
    }
 
    public function sendResettingEmailMessage(UserInterface $user){
 
    }
}
 
?>
MailerInterface
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
20
21
22
23
24
25
26
27
28
29
 
namespace MONBundle\WlUserBundle\Mailer;
 
use FOS\UserBundle\Model\UserInterface;
use FOS\UserBundle\Mailer\MailerInterface as ExtendMailInterface;
 
/**
 * 
 */
interface MailerInterface extends ExtendMailInterface
{
    /**
     * Send an email to a user to confirm the account creation
     *
     * @param UserInterface $user
     */
    function sendConfirmationEmailMessage(UserInterface $user);
 
    /**
     * Send an email to a user to confirm the password reset
     *
     * @param UserInterface $user
     */
    function sendResettingEmailMessage(UserInterface $user);
 
    public function sendRefusMessage();
 
    public function sendContactFormMessage($infos);
}
Fichier de Config
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
 
fos_user:
    db_driver:     orm                        # Le type de BDD à utiliser, nous utilisons l'ORM Doctrine depuis le début
    firewall_name: main                       # Le nom du firewall duquel on utilisera ces utilisateurs
    user_class:    MONBUNDLE\WlUserBundle\Entity\Customer # La classe de l'entité User que nous venons de définir
    registration:
        form:
            type: wlbundle_customertype
            handler: wluserbundle.form.handler.registration
        confirmation:
            enabled:    false
    service:
        mailer: keep.mailer
 
#DANS SERVICE
services:
   keep.mailer:
       class: MONBundle\WlUserBundle\Listener\EmailListener
       arguments: [@mailer, @templating, @service_container]
Et malgrés tout ça...j'ai l'impression qu'il ne rentre jamais dans ma surchage

Est ce que quelqu'un aurait une idée ? ou pourrait m'aider un peu svp ?

Merci d'avance

Decad7