Bonjour à tous ,

j'utilise une application sur symfony 2.0 , j'aimerais qu’après déconnexion on puisse enregistrer des informations en base de donnée
pour cela j'utilise le fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SessionLogoutHandler.php
voici mon code complet (dans le fichier SessionLogoutHandler.php ) :

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
namespace Symfony\Component\Security\Http\Logout;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
 
use Compta\MyappliBundle\Entity\LogTache;
use Compta\MyappliBundle\Entity\User;
use Doctrine\ORM\EntityManager;
 
 
class SessionLogoutHandler implements LogoutHandlerInterface
{
 
    public function logout(Request $request, Response $response, TokenInterface $token)
    {
 
            $em = $this->getDoctrine()->getEntityManager();
            $user= $this->get('security.context')->getToken()->getUser();
            $u = new LogTache();
 
            $u->setDate(new \DateTime());
            $u->setUser($user->getUsername());
            $u->setActioneffectue('Déconnexion');
            $em->persist($u);
            $em->flush($u);
 
    $request->getSession()->invalidate();
 
    }
 }
lorsque je me déconnecter j'ai une erreur:
Fatal error: Call to undefined method Symfony\Component\Security\Http\Logout\SessionLogoutHandler::getDoctrine() in C:\wamp\www\MyAppli\vendor\symfony\src\Symfony\Component\Security\Http\Logout\SessionLogoutHandler.php on line 17
je rappelle que le code de déconnexion est automatique et la méthode utilisée est:
/logout
dans le fichier routing.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
logout:
pattern:   /logout
dans le fichier security.yml
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
security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext
        Compta\MyappliBundle\Entity\User: sha512
 
    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
 
    providers:
        in_memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
        main:
            entity: { class: Compta\MyappliBundle\Entity\User, property: username }
 
    firewalls:
        dev:
            pattern:  ^/(_(profiler|wdt)|css|images|js)/
            security: false
        main:
            pattern:   ^/
            anonymous: true
            provider:  main
            form_login:
                login_path: login
                check_path: login_check
            logout:
                path:   logout
                target: /login
 
    access_control:
        -  { path: ^/$, role: IS_AUTHENTICATED_ANONYMOUSLY }  
        -  { path: ^/_wdt, role: IS_AUTHENTICATED_ANONYMOUSLY }
        -  { path: ^/_profiler, role: IS_AUTHENTICATED_ANONYMOUSLY }
        -  { path: /login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        -  { path: ^/, roles: IS_AUTHENTICATED_FULLY  }
Comment résoudre cette erreur ?