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 :

SF2 2.7 : Attempted to load class etc. [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Lead développeur web
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lead développeur web
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut SF2 2.7 : Attempted to load class etc.
    Bonjour à tous.

    Je sollicite votre aide parce que je bute sur un problème qui me rend chèvre.

    Je débute sur SF2 et j'essaye de surcharger la méthode onAuthenticationSuccess pour mettre à jour mon user dés qu'il est logué.

    Je suis en train de suivre ce tuto : http://www.sitepoint.com/symfony2-registration-login/

    Je coince à l'endroit suivant :

    Je créer ma class AuthenticationSuccessHandler à l'endroit : src/Pluton/UserBundle/Handler/AuthenticationHandler.php

    Et j'ai cette erreur :

    Attempted to load class "AuthenticationSuccessHandler" from namespace "Pluton\UserBundle\Handler".
    Did you forget a "use" statement for another namespace?

    Voici mon code

    services.yml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      security.authentication.success_handler:
            class: Pluton\UserBundle\Handler\AuthenticationSuccessHandler
            arguments: ["@security.http_utils", "@service_container", {}]
            tags:
                - { name: 'monolog.logger', channel: 'security'}

    AuthenticationHandler.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
    31
    32
    <?php
    namespace Pluton\UserBundle\Handler;
     
    use Symfony\Component\Security\Http\HttpUtils;
    use Symfony\Component\Security\Http\Authentication\DefaultAuthenticationSuccessHandler;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
     
    class AuthenticationSuccessHandler extends DefaultAuthenticationSuccessHandler
    {
     
        protected $container;
     
        public function __construct(HttpUtils $httpUtils, \Symfony\Component\DependencyInjection\ContainerInterface $cont, array $options)
        {
            parent::__construct($httpUtils, $options);
            $this->container = $cont;
        }
     
        public function onAuthenticationSuccess(\Symfony\Component\HttpFoundation\Request $request, \Symfony\Component\Security\Core\Authentication\Token\TokenInterface $token)
        {
            $user = $token->getUser();
            //$user->setDisabled(1);
     
            $em = $this->container->get('doctrine.orm.entity_manager');
     
            $em->persist($user);
            $em->flush();
     
            return $this->httpUtils->createRedirectResponse($request, $this->determineTargetUrl($request));
        }
    }

    Je passe à coté de quelque chose mais impossible de savoir quoi.

    Merci d'avance pour votre aide

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    yoooooo man rastafariiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii,

    utilise plutôt les interfaces que la classe abstraite elle même.

    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
     
    <?php
    namespace Xxx\UserBundle\Component\Authentication\Handler;
     
    use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
    use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Core\Security;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\RedirectResponse;
    use Symfony\Component\Routing\Router;
    use Symfony\Component\Security\Core\Exception\AuthenticationException;
     
    class LoginSuccessHandler implements AuthenticationSuccessHandlerInterface, AuthenticationFailureHandlerInterface {
     
        protected $router;
     
     
        public function __construct(Router $router) 
        {
            $this->router = $router;
     
        }
     
        public function onAuthenticationSuccess(Request $request, TokenInterface $token)
        {
     
    ....
     
     
                return new RedirectResponse( $this->router->generate( 'page_index') );
     
        }
     
     
     
        public function onAuthenticationFailure(Request $request, AuthenticationException $exception) {
     
    .......


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        xxx_login_success_handler:
            class:  Xxx\UserBundle\Component\Authentication\Handler\LoginSuccessHandler
            arguments:  [@router]
            tags:
                - { name: 'monolog.logger', channel: 'security' }

  3. #3
    Membre éclairé
    Homme Profil pro
    Lead développeur web
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lead développeur web
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Merci pour ta réponse, je vais regarder ça

  4. #4
    Membre éclairé
    Homme Profil pro
    Lead développeur web
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lead développeur web
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Testé et approuvé ça marche nickel !
    Un grand merci.

    A tout hasard, serais tu comment on check si le membre n'est pas ban par exemple ?

  5. #5
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    ban, je ne sais pas si c'est gérer par fosUserBundle. si ce n'est pas le cas , à toi de l’intégrer. mais je sais qu'un user peut être défini par un compte actif ou inactif, voir l'état d'un user pour ça. (je ne sais plus lequel).

    après si tu as différents niveau pour un user tu peux utiliser les rôles.

  6. #6
    Membre éclairé
    Homme Profil pro
    Lead développeur web
    Inscrit en
    Février 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Lead développeur web
    Secteur : Service public

    Informations forums :
    Inscription : Février 2008
    Messages : 34
    Par défaut
    Bonjour,

    Je n'utilise pas fosUserBundle, je suis en train de me former sur le framework, j'aimerai savoir le faire avant d'utiliser un bundle tiers

    J'ai finalement trouver comment faire.

    Une fois la personne connecté, dans la méthode onAuthenticationSuccess() je check si le compte est valide ou non. Si ce n'est pas le cas => redirection auto vers le logout.

    Est ce la bonne méthode ?

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

Discussions similaires

  1. [2.x] Attempted to load class
    Par beegees dans le forum Symfony
    Réponses: 1
    Dernier message: 09/08/2015, 17h17
  2. Réponses: 5
    Dernier message: 19/05/2008, 18h40
  3. [Custom Tags 1.2] [JBoss] "unable to load class handler."
    Par coyote999 dans le forum Taglibs
    Réponses: 5
    Dernier message: 23/01/2008, 22h27
  4. [SQL] Nommer efficacement les fonctions, classes, etc.
    Par Metallic-84s dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/09/2006, 18h57
  5. [TOMCAT 5.0 - JSP] Load: class XXX not found
    Par Hoegaarden dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 20/10/2005, 09h59

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