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 :

Autoloader et RuntimeException [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Autoloader et RuntimeException
    Bonjour à tous !

    J'essaye de me familiariser avec Symfony2.

    Je tente de créer une page de contact simple, mais lorsque je lance le navigateur j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RuntimeException: The autoloader expected class "Yekoo\GroupeBundle\Controller\ContactController" to be defined in file "C:\Program Files\wamp\www\Symfony\app/../src\Yekoo\GroupeBundle\Controller\ContactController.php". You probably have a typo in the namespace or the class name. (uncaught exception) at C:\Program Files\wamp\www\Symfony\vendor\symfony\src\Symfony\Component\ClassLoader\DebugUniversalClassLoader.php line 58
    Pour infos :
    • J'ai créer mon bundle "Groupe"
    • Il est référencé dans le fichier AppKernel.php
    • J'ai créé une route :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      contact:
          pattern:  /contact/
          defaults: { _controller: YekooGroupeBundle:Contact:index }
    • J'ai créé le controller ContactController (Yekoo\GroupeBundle\Controller\ContactController.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
      33
      34
      <?php
       
      namespace Yekoo\GroupeBundle\Controller;
      namespace Yekoo\GroupeBundle\Form;
       
      use Symfony\Bundle\FrameworkBundle\Controller\Controller;
      use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
       
      class ContactController extends Controller
      {
          /**
           * @Template()
           */
          public function indexAction()
          {
              $form = $this->get('form.factory')->create(new ContactType());
       
              $request = $this->get('request');
              if ('POST' == $request->getMethod()) {
                  $form->bindRequest($request);
                  if ($form->isValid()) {
                      $mailer = $this->get('mailer');
                      // .. setup a message and send it
                      // http://symfony.com/doc/current/cookbook/email.html
       
                      $this->get('session')->setFlash('notice', 'Message sent!');
       
                      return new RedirectResponse($this->generateUrl('contact'));
                  }
              }
       
              return array('form' => $form->createView());
          }
      }
    • J'ai créé ma vue (Yekoo\GroupeBundle\Resources\views\Contact\index.html.twig)
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      {% block title "Symfony - Formulaire de contact" %}
       
      {% block content %}
          <form action="{{ path('contact') }}" method="POST" id="contact_form">
              {{ form_errors(form) }}
       
              {{ form_row(form.nom) }}
              {{ form_row(form.email) }}
              {{ form_row(form.message) }}
       
              {{ form_rest(form) }}
              <input type="submit" value="Send" class="symfony-button-grey" />
          </form>
      {% endblock %}


    J'ai bien compris qu'il y a visiblement une erreur dans le nommage des namespaces et/ou classes... Mais je ne la trouve pas.

    Avez vous une idée pour m'aider à résoudre ce problème ?

    Je vous remercie.
    Yekoo.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Dans ton ContactController a la ligne 4, tu definis deux fois le namespace. Enleve le second.
    Un petit si la réponse convient. Merci.

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Un coquille laissée par Eclipse ? Je sais que PDT à du mal avec les namespace - il me mets toujours les use avant le mot clé namespace

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Bonsoir à vous deux !

    En effet RapotOR, c'était bien ça le problème visiblement ! Merci beaucoup :-)

    Voici le code du controller corrigé :

    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
    <?php
     
    namespace Yekoo\GroupeBundle\Controller;
    //namespace Yekoo\GroupeBundle\Form; --> a SUPPRIMER
     
    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
    use Yekoo\GroupeBundle\Form\ContactType; //a rajouter
     
    class ContactController extends Controller
    {
        /**
         * @Template()
         */
        public function indexAction()
        {
            $form = $this->get('form.factory')->create(new ContactType());
     
            $request = $this->get('request');
            if ('POST' == $request->getMethod()) {
                $form->bindRequest($request);
                if ($form->isValid()) {
                    $mailer = $this->get('mailer');
                    // .. setup a message and send it
                    // http://symfony.com/doc/current/cookbook/email.html
     
                    $this->get('session')->setFlash('notice', 'Message sent!');
     
                    return new RedirectResponse($this->generateUrl('contact'));
                }
            }
     
            return array('form' => $form->createView());
        }
    }
    Benjamin, j'utilise Netbeans. J'ai passé une grosse partie de la journée sur la doc hier, donc je pense que c'est la fatigue qui m'a fait écrire "namespace Yekoo\Groupe..." au lieu de "use Yekoo\Groupe..." ! :-s

    Merci encore pour votre aide !

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

Discussions similaires

  1. logger les RuntimeException
    Par Lethal dans le forum Langage
    Réponses: 5
    Dernier message: 08/08/2007, 17h57
  2. Différence entre RuntimeException et Error
    Par dabeuliou dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2007, 10h23
  3. Réponses: 3
    Dernier message: 11/10/2006, 11h54
  4. [POO] Probleme avec static et autoload
    Par laetyboop dans le forum Langage
    Réponses: 1
    Dernier message: 23/03/2006, 14h46
  5. exemple de script avec autoloader
    Par djibril dans le forum Modules
    Réponses: 4
    Dernier message: 24/11/2005, 17h53

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