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 :

__Contruct dans un Controller problème


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 13
    Points
    13
    Par défaut __Contruct dans un Controller problème
    Bonsoir,

    je pose sur un problème ce soir surement bête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class AdminController extends Controller
    {
     
        // Attribut de classe //
        private $_Connexion;
     
        public function __construct()
        {       
            $this->_Connexion = $this->getDoctrine()->getEntityManager(); // Comment je peut faire ceci ?
     
            var_dump($this->_Connexion);
        }
    Comment je peut faire ceci ? sans qu'il y est une erreur

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 725
    Points : 1 050
    Points
    1 050
    Par défaut
    la méthode getDoctrine est un simple raccourci vers un service du container
    https://github.com/symfony/symfony/b...ller.php#LC186

    comme dans le constructeur, le controlleur n'a pas encore accés au container, ça ne peut pas fonctionner.

    un truc moche pour faire cela serait d'agir au niveau de la méthode setContainer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public function setContainer(\Symfony\Component\DependencyInjection\ContainerInterface $container){
      parent::setContainer($container);
      $this->_Connexion = $this->getDoctrine()->getEntityManager();
    }
    mais tu peux aussi créer une simple méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public function getEntityManager(){
      return $this->getDoctrine()->getEntityManager();
    }
    c'est la responsabilité du container de mettre à disposition des services, pas au controller, d'autant plus que tu appelles le service Doctrine, mais que tu ne l'utiliseras peut-être pas.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Si je comprends bien avec la première méthode moche je n'est plus besoin de fonction __construct ? a chaque utilisation de ce fichier la méthode set... sera toujours exécuter ?

    Merci de ton aide

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Declaration of LGB\BourseLivresBundle\Controller\ServiceController::setContainer() must be compatible with that of Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer() in C:\wamp\www\Symfony\src\LGB\BourseLivresBundle\Controller\ServiceController.php on line 14
    J'ai ça comme erreur du coup !

Discussions similaires

  1. [MVC] Problème avec l'annotation @Autowired dans le @Controller
    Par rolandl dans le forum Spring Web
    Réponses: 0
    Dernier message: 31/12/2011, 02h18
  2. Ouvrir un Formulaire dans un control sous-Formulaire
    Par Berny03 dans le forum Access
    Réponses: 2
    Dernier message: 27/09/2005, 12h22
  3. [MFC]List Control : problème d'affichage
    Par gege2061 dans le forum MFC
    Réponses: 5
    Dernier message: 25/07/2005, 13h40
  4. Afficher un jpeg 2000 dans un controle
    Par barthelv dans le forum MFC
    Réponses: 1
    Dernier message: 17/05/2005, 09h57
  5. Calcul dans un triggers : problème du +
    Par eXiaNazaire dans le forum Oracle
    Réponses: 3
    Dernier message: 07/01/2005, 10h14

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