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 :

Création d'un Bundle : classe introuvable


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Création d'un Bundle : classe introuvable
    Bonjour à tous,

    Voilà quelques heures que je me suis mis à l'apprentissage du framework Symfony 2 (plus précisément, la version que j'ai téléchargée est la version 2.0.6 avec Vendors) et j'ai très vite rencontré un problème dans la création d'un Bundle.

    J'ai tout d'abord installé Symfony :
    • j'ai téléchargé Symfony 2.0.6
    • j'ai décompressé l'archive
    • j'ai exécuté la page config.php et résolu tous les problèmes détectés
    • je me suis amusé à tester la démo qui fonctionnait parfaitement


    J'ai ensuite désiré créer un Bundle tout simple, j'ai donc tapé la commande suivante : php app/console generate:bundle ; avec les options suivantes :
    • Bundle namespace : Anis/HelloBundle
    • Bundle name : AnisHelloBundle
    • Target directory : pathtosymfony/src
    • Configuration format : yml
    • Generate the whole directory structure : yes
    • Confirm generation : yes
    • Confirm automatic update of the Kernel : yes
    • Confirm automatic update of the Routing : yes


    L'opération s'est bien déroulée, en apparence : j'ai bien mon dossier src/Anis/HelloBundle avec toute l'architecture nécessaire, et les fichiers app/config/routing.yml et app/AppKernel.php ont bien été mis à jour.

    Voici d'ailleurs leur contenu :

    app/config/routing.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    AnisHelloBundle:
        resource: "@AnisHelloBundle/Resources/config/routing.yml"
        prefix: /
     
    ...
    app/AppKernel.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public function registerBundles()
    {
        $bundles = array(
            ...,
            new Anis\HelloBundle\AnisHelloBundle(),
        );
     
        ...
    }
    Et c'est déjà après cette simple commande que je me retrouve bloqué : lorsque j'essaie d'accéder à n'importe quelle page (comme par exemple "app_dev.php/demo/hello/Anis" qui marchait parfaitement avant la création du Bundle), je suis gratifié de l'erreur suivante :
    Fatal error: Class 'Anis\HelloBundle\AnisHelloBundle' not found in pathtosymfony/app/AppKernel.php on line 20

    J'ai bien vérifié et revérifié quinze fois la casse ou les erreurs de frappe mais le fichier "src/Anis/HelloBundle/AnisHelloBundle.php" existe bien et son contenu déclare bien la classe AnisHelloBundle dans le namespace Anis\HelloBundle...

    Je ne comprends vraiment pas où je fais une erreur, d'autant que j'ai répété cette manip' en suivant 4 ou 5 tutoriels différents avec toujours le même résultat à la fin...

    J'espère que quelqu'un pourra m'aider sur ce problème car je me sens vraiment frustré : sur 3h de travail sur Symfony, j'en aurais passé 2h30 à faire des recherches sur Google pour comprendre mon problème.

    Merci d'avance !

  2. #2
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je viens de me rendre compte que j'ai posté cette discussion sur le forum "Symfony" au lieu de "Symfony 2", je m'en excuse et si un modérateur pouvait déplacer mon sujet au bon endroit, ce serait grandement apprécié !

    Encore désolé !

  3. #3
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Tu as créé la route pour y accéder ?

    Dans symfony 2, les routes ne sont pas géré de la même façon que dans la version 1.x, il faut absolument que tu déclares la route dans le routing.yml.

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci pour ta réponse, mais je ne comprends pas bien : de quelle route et de quel fichier routing.yml parles-tu ?

    Pour ce qui est du fichier app/config/routing.yml, il a été mis à jour automatiquement par Symfony, comme je l'expliquais dans mon premier post, et pour ce qui est du fichier src/Anis/HelloBundle/Resources/config/routing.yml, je ne vois pas bien ce qui y manquerait pour provoquer une erreur pareil dans le AppKernel ?

  5. #5
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    Je vais essayer de t'expliquer un peu plus en détail.
    Dans sf 1.x tu as une route par défaut basé sur le module et l'action que tu craies.

    Dans sf 2.0 tu n'as plus de module/action mais x bundle dans un namespace.
    Pour que sf 2 puisse savoir ce que tu veux interroger il faut que tu lui indique la route pour accéder à ton bundle -> ta méthode.
    Tout est indiqué dans la doc :
    http://symfony.com/doc/current/book/page_creation.html

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Alors oui, effectivement, la route est bien crée, pas de soucis à ce niveau.

  7. #7
    Membre éclairé Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Points : 816
    Points
    816
    Par défaut
    tu as écrit quoi dedans c'est la plus important de tous.

Discussions similaires

  1. Création de formulaire par classe
    Par senacle dans le forum Général Python
    Réponses: 6
    Dernier message: 29/06/2018, 16h50
  2. [Debutant]Jar executable ==> Main-Class introuvable
    Par Invité dans le forum Langage
    Réponses: 10
    Dernier message: 09/12/2006, 14h07
  3. [BPEL] Classe introuvable pour un web service
    Par thecaptain dans le forum Services Web
    Réponses: 1
    Dernier message: 14/11/2006, 17h43
  4. création d'une dll (classe c++)
    Par TheShadow dans le forum MFC
    Réponses: 4
    Dernier message: 10/04/2006, 16h21
  5. CLASS INTROUVABLE
    Par kazer04 dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/03/2006, 21h01

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