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 :

Problème d'installation de FOSUserBundle [2.x]


Sujet :

Symfony PHP

  1. #1
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut Problème d'installation de FOSUserBundle
    Bonjour,

    J'ai essayé d'installer FOSUserBundle en suivant le tuto de cette page :

    http://j-place.developpez.com/tutori...avec-symfony2/

    J'ai testé les 2 méthodes :

    Téléchargement par le fichier deps :

    Lorsque je tape la commande php bin/vendors install --reinstall
    voila ce qui se passe :


    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
    40
    41
    42
    43
    44
    45
    46
    47
    'git' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    Le chemin d'accès spécifié est introuvable.
    > Installing/Updating twig
    'git' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    Le chemin d'accès spécifié est introuvable.
    > Installing/Updating monolog
    'git' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    Le chemin d'accès spécifié est introuvable.
    > Installing/Updating doctrine-common
    'git' n'est pas reconnu en tant que commande interne
    		|
    		|
    		|
    Le chemin d'accès spécifié est introuvable.
    > Installing/Updating AsseticBundle
    'git' n'est pas reconnu en tant que commande interne
    ou externe, un programme exécutable ou un fichier de commandes.
    Le chemin d'accès spécifié est introuvable.
    > Installing/Updating FOSUserBundle
    'git' n'est pas reconnu en tant que commande interne
    		|
    		|
    		|
    ch file or directory in C:\wamp\www\project\app\autoload.php on line 25
    PHP Stack trace:
    PHP   1. {main}() C:\wamp\www\project\app\console:0
    PHP   2. require_once() C:\wamp\www\project\app\console:10
    PHP   3. require_once() C:\wamp\www\project\app\bootstrap.php.cache:3
     
     
     
    Fatal error: require_once(): Failed opening required 'C:\wamp\www\project\app/
    ../vendor/symfony/src/Symfony/Component/Locale/Resources/stubs/functions.php' (i
    nclude_path='.;C:\php\pear') in C:\wamp\www\project\app\autoload.php on line 25
     
    Call Stack:
        0.0006     328544   1. {main}() C:\wamp\www\project\app\console:0
        0.0094     874224   2. require_once('C:\wamp\www\project\app\bootstrap.php
    .cache') C:\wamp\www\project\app\console:10
        0.0103     889960   3. require_once('C:\wamp\www\project\app\autoload.php'
     
    .cache') C:\wamp\www\project\app\console:10
        0.0103     889952   3. require_once('C:\wamp\www\project\app\autoload.php'
    ) C:\wamp\www\project\app\bootstrap.php.cache:3
    et j'en passe et j'en passe

    Donc j'ai essaye le Téléchargement classique
    J'ai installé le dossier ici :
    C:\wamp\www\project\vendor\bundles\FOS\UserBundle

    puis j'ai suivi a la lettre le reste de l'explication :

    Ouvrez le fichier app/AppKernel.php et insérez la ligne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new FOS\UserBundle\FOSUserBundle(),
        );
    }
    Ouvrez le fichier Symfony2/app/autoload.php et insérez la ligne :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $loader->registerNamespaces(array(
        // ...
        'FOS' => __DIR__.'/../vendor/bundles',
    ));
    et une fois que tout cela est fait si je veu allé sur une page de mon site voila le résultat :

    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
     
    Whoops, looks like something went wrong.
    1/1 InvalidConfigurationException: The child node "db_driver" at path "fos_user" must be configured.
     
        in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\Config\Definition\ArrayNode.php line 196
        at ArrayNode->finalizeValue() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\Config\Definition\BaseNode.php line 205
        at BaseNode->finalize() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\Config\Definition\Processor.php line 39
        at Processor->process() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\Config\Definition\Processor.php line 52
        at Processor->processConfiguration() in C:\wamp\www\project\vendor\bundles\FOS\UserBundle\DependencyInjection\FOSUserExtension.php line 28
        at FOSUserExtension->load() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass.php line 42
        at MergeExtensionConfigurationPass->process() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass.php line 39
        at MergeExtensionConfigurationPass->process() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\DependencyInjection\Compiler\Compiler.php line 119
        at Compiler->compile() in C:\wamp\www\project\vendor\symfony\src\Symfony\Component\DependencyInjection\ContainerBuilder.php line 435
        at ContainerBuilder->compile() in C:\wamp\www\project\app\bootstrap.php.cache line 868
        at Kernel->buildContainer() in C:\wamp\www\project\app\bootstrap.php.cache line 779
        at Kernel->initializeContainer() in C:\wamp\www\project\app\bootstrap.php.cache line 513
        at Kernel->boot() in C:\wamp\www\project\app\bootstrap.php.cache line 544
        at Kernel->handle() in C:\wamp\www\project\web\app_dev.php line 24
    Ou est ce que j'ai merdé ?
    mon site est en local avec Wamp 2.2 , PHP 5.3.8 j'utilise firefox 8

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    Salut,
    la commande "php bin/vendors install " fonctionne grâce au logiciel GIT d'ou ton erreur
    'git' n'est pas reconnu en tant que commande interne
    Regarde sur Google pour installer GIT sous windows.

    Ensuite pour l'installation classique, tu as oublié de paramétrer ton bundle:
    Whoops, looks like something went wrong.
    1/1 InvalidConfigurationException: The child node "db_driver" at path "fos_user" must be configured.
    Il faut que tu regardes la documentation de fosuser:
    https://github.com/FriendsOfSymfony/...s/doc/index.md

    Regarde à partir de "Step 6" la première étape est justement celle de la configuration de db_driver.

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Merci de t'a réponse

    J'ai donc suivi ton conseil et poursuivi le tuto de cette page :

    http://j-place.developpez.com/tutori...fony2/#LVI-A-2

    J'ai effectuer l'installation classique.
    la dernière étape que j'ai effectué est celle ci :

    Créez l'entité Utilisateur.php dans le répertoire MyApp/UtilisateurBundle/Entity/ .

    Je n'ai plus de message d'erreur cependant je vais avoir un probléme avoir ces 2 étapes du tuto :

    • Il faut maintenant générer les entités : php app/console doctrine:generate:entities MyApp

      Et mettre à jour le schéma de la base de données : php app/console doctrine:schema:update --force


    En fait j'ai généré toutes mes Entitées depuis ma base de données et non pas l'inverse. De plus je ne pensé pas utiliser FOSUserBundle de fait j'avais déjà une table Utilisateur dans la base et j'ai donc aussi déjà une entité Utilisateur qui a été généré en même temps que tous le reste.

    Comment puis je rétablir les choses ? Dois je supprimer la table Utilisateur de ma base de données ainsi que l'entité qui lui correspond ?

    Merci d'avance

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    Salut,
    En fait j'ai généré toutes mes Entitées depuis ma base de données et non pas l'inverse
    Doctrine2 te permet de faire abstraction de ta base de données. Tu dois penser ta programmation en terme de classes/entités qui te sont nécessaires et non en terme de tables dans une bdd. Il faut donc presque toujours partir de tes classes et Doctrine se charge de créer la bdd correspondante.
    Partir d'une bdd pour obtenir ses entités est possible mais il vaut mieux s'en servir seulement dans le cas où tu aurai déjà un gros site avec une base de données complexe et bien remplie.

    j'avais déjà une table Utilisateur dans la base et j'ai donc aussi déjà une entité Utilisateur qui a été généré en même temps que tous le reste.
    Ce que je te conseille c'est de reprendre ton entité utilisateur et de la définir en tant que classe héritant de "FOS\UserBundle\Entity\User" ( au lieu de créer une nouvelle classe User héritant de FOS\UserBundle\Entity\User ).
    Ensuite tu t'assures qu'elle contient bien un champ "id" comme précisée dans la doc FosUser.
    Tu lève toutes les propriétés que tu avais définies auparavant et qui sont déjà dans FosUser (emai, username, password,etc... regarde la doc) ceci afin d'éviter de te retrouver avec des doublons lors de la génération du schema. N'oublie pas aussi de supprimer les méthodes correspondantes telles que setEmail(),setUsername(),etc.. sauf si tu veux les surcharger mais bon pour commencer il vaut mieux que tu n'y touches pas.
    Si tu avais ajouté d'autre propriétes (adresse, téléphone, etc... ) tu peux les laisser, elles viendront s'ajouter au modèle de base de FosUser.

    Ensuite tu n'as plus qu'à regénérer tes entités:
    php app/console generate:doctrine:entities MyApp
    et enfin à mettre à jour la bdd
    php app/console doctrine:schema:update --force

    et puis finir selon les indications données dans la doc FosUser et le tuto.

  5. #5
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Je pense que j'ai compris. J'ai tenté de le faire du bidouillage en modifiant juste mon entité Utilisateur mais j'ai toujours des erreurs doctrine quand j'essaie d'update ma base. Donc je vais refaire toute mes entités bien au propres et je vais générer ma base en partant de mes entités, comme ça je repartirai sur de bonnes bases. Je vous tien au courant.

  6. #6
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    C'est quoi tes messages d'erreur?
    Envoi le code de ton entité User

  7. #7
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    J'ai essayé tellement de possibilité et eu tellement de messages d'erreurs différent que je ne voie pas trop par ou commencer.

    Je prend un cas au hasard :

    si je fais ce que tu me conseil, je remplace le Utilisateur.php que j'avais par le nouveau :

    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
     
     
    <?php
    namespace Fv\PrincipalBundle\Entity;
    use FOS\UserBundle\Entity\User as BaseUser;
    use Doctrine\ORM\Mapping as ORM;
     
    /**
     * @ORM\Entity
     */
    class Utilisateur extends BaseUser
    {
        /**
        * @ORM\Id
        * @ORM\Column(type="integer")
        * @ORM\generatedValue(strategy="AUTO")
        */
        protected $id;
     
        public function __construct()
        {
            parent::__construct();
        }
    }

    Je laisse que ca comme propriété justement pour faire simple.
    je fais la commande :
    php app/console generate:doctrine:entities Fv

    et ca me génére tous bien sauf que ca me double toutes mais class
    par exemple pour utilisateur : avant la commande dans le dossier Entity j'ai :
    Utilisateur.php
    et aprés j'ai :
    Utilisateur.php
    Utilisateur.php~

    comprend pas pourquoi...

    A se stade je me dit déjà que ca peu pas fonctionner mais par acquis de conscience je fais la commande :
    php app/console doctrine:schema:update --force

    et voila mon message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      [ErrorException]
     
      Warning: class_parents(): Class Fv\MapBundle\Entity\Utilisateur does not exist
     and could not be loaded in C:\wamp\www\fvproject\vendor\doctrine\lib\Doctrine\O
    RM\Mapping\ClassMetadataFactory.php line 223
     
    doctrine:schema:create [--dump-sql] [--em[="..."]]
    je songe de plus en plus a demander un emprunt a ma banque pour m'acheter un troupeau de chèvre et aller vivre a Rocamadour.

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    et aprés j'ai :
    Utilisateur.php
    Utilisateur.php~
    la classe avec un tild ~ c'est normal. Avant de générer tes entités celles ci sont sauvegardées et un tild est ajouté à ces classes. Tu dois avoir ça pour toutes tes entités.

    Ensuite ton message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class Fv\MapBundle\Entity\Utilisateur does not exist
    concerne l'entité Utilisateur de ton Bundle MapBundle et non celle de PrincipalBundle.
    Je pense que c'est ton ancienne classe Utilisateur, non ? Tu as du la retirer et doctrine ne la trouve plus, donc il génère une erreur. D'ailleurs il te demande de recréer ton schema
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    doctrine:schema:create [--dump-sql] [--em[="..."]]
    Le mieux à faire c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    php app/console cache:clear //un peu de nettoyage
    php app/console doctrine:schema:drop  // on supprime l'ancien schema
    php app/console generate:doctrine:entities Fv
    php app/console doctrine:schema:create
    Si doctrine:schema:drop ne marche pas tu remplace par "doctrine:database:drop" puis "doctrine:database:create" (on supprime la bdd puis on la réinstalle)


    normalement ça devrait passer (sauf si d'autres erreurs qu'on ne connait pas encore dans les entités)

    je songe de plus en plus a demander un emprunt a ma banque pour m'acheter un troupeau de chèvre et aller vivre a Rocamadour.
    Vu la situation économique c'est même pas sûr qu'il te l'accorde

  9. #9
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    On prend les même et on recommence.

    J'ai tous recommencé, j'ai créé mes classes php et ensuite j'ai généré ma base. Tous est propre donc j'ai tenté une N éme fois d'installer FOSUserBundle. Encore des erreurs :

    J'ai tenté la chose suivante :

    J'ai mon bundle principal ( CarteBundle )avec dans entity toutes les class PHP sauf la class utilisateur que j'ai mis dans le bundle Utilisateur ( UtilisateurBundle ). Lorsque j'essaie de générer ma base voila ce que j'obtiens. (J'ai supprimer ma bases pour qu'il est moin de risque d'erreur)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    C:\wamp\www\projet>php app/console doctrine:schema:create
    ATTENTION: This operation should not be executed in a production environment.
     
    Creating database schema...
     
     
    [ErrorException]
     
    Warning: class_parents(): Class mon_app\CarteBundle\Entity\Utilisateur does
    not exist and could not be loaded in C:\wamp\www\projet\vendor\doctri
    ne\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php line 223
     
    doctrine:schema:create [--dump-sql] [--em[="..."]]
    ensuite j'ai voulu suivre ton conseil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    php app/console cache:clear //un peu de nettoyage
    php app/console doctrine:schema:drop  // on supprime l'ancien schema
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    C:\wamp\www\projet>php app/console doctrine:schema:drop
    ATTENTION: This operation should not be executed in a production environment.
     
    [ErrorException]
     
      Warning: class_parents(): Class mon_app\CarteBundle\Entity\Utilisateur does
    not exist and could not be loaded in C:\wamp\www\projet\vendor\doctri
    ne\lib\Doctrine\ORM\Mapping\ClassMetadataFactory.php line 223
     
    doctrine:schema:drop [--dump-sql] [--force] [--full-database] [--em[="..."]]
    et voila je m’efforce de rester zen.

    Je précise un truc :

    Le message dit que l'Entité Utilisateur de Bundle CarteBundle n'existe pas, en effet je l'ai supprimé pour le remplacer pas l'entité utilisateur du Bundle UtilisateurBundle.

  10. #10
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    Dans tes autres entités quand tu défini tes relations avec Utilisateur tu n'as pas du spécifier qu'il était dans un autre Bundle. C'est pour ça qu'il le cherche au mauvais endroit. Tu dois spécifier le namespace de Utilisateur

  11. #11
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Désolé mais je n'arrive pas trouver comment faire pour spécifier qu'utilisateur est dans un autre Bundle. En fait je ne trouve tous simplement pas la syntaxe.

    J'imagine que c'est à ce niveau la que ça se passe :

    je prend l'exemple d'une class de mon Bundle CarteBundle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /**
    * @ORM\ManyToMany(targetEntity="Utilisateur")
    */ 
    private $utilisateur;

  12. #12
    En attente de confirmation mail
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 27
    Points : 21
    Points
    21
    Par défaut
    Enfin ça fonctionne !

    J'ai trouvé comment faire le lien ici :
    http://www.developpez.net/forums/d10...rents-bundles/

    Bundle User Installé !

    merci a toi johnbenz !!

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 104
    Points : 88
    Points
    88
    Par défaut
    De rien, content que tout marche bien maintenant

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

Discussions similaires

  1. [2.x] Problème général suite à l'installation de FOSUserBundle
    Par Doubrovski dans le forum Symfony
    Réponses: 7
    Dernier message: 28/03/2015, 11h55
  2. [2.x] [FOSUserBundle] Problème d'installation
    Par fahdijbeli dans le forum Symfony
    Réponses: 6
    Dernier message: 28/01/2013, 22h41
  3. [SAPdb]Problème d'installation
    Par manou dans le forum SAP
    Réponses: 3
    Dernier message: 17/04/2003, 09h20
  4. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  5. Réponses: 3
    Dernier message: 26/07/2002, 23h02

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