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

Doctrine2 PHP Discussion :

générer des entities depuis une bdd existante avec doctrine 2 uniquement


Sujet :

Doctrine2 PHP

  1. #1
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut générer des entities depuis une bdd existante avec doctrine 2 uniquement
    en ligne de commandes je ne sais pas ce qu il faut saisir. J'utilise vendor\bin\doctrine sous windows 10. Je lis un tres bon tutoriel
    mais il n'indique pas comment générer les entities depuis une base de donnée existante.

    Merci

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Il faut d'abord faire un mapping à partir de la bdd existante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ vendor\bin\doctrine orm:convert-mapping --from-database --namespace='Entity\' annotation src/
    Remplace src par le chemin où tu désires mettre les entités. Cela va générer les squelettes des entités dans le répertoire src/Entity, sous le namespace Entity, avec les propriétés et les annotations.

  3. #3
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Merci pour ta réponse.
    j'ai mis en console cmd
    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\doctrine2-tuto>vendor\bin\doctrine orm:convert-mapping --from-database --namespace='src\Entity\' annotation src/
     
    Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2624
     
    Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2653
    Processing entity "'src\Entity\'Admin"
    Processing entity "'src\Entity\'Commentaire"
    Processing entity "'src\Entity\'Creersujet"
    Processing entity "'src\Entity\'Membre"
    Processing entity "'src\Entity\'Sujet"
     
    Exporting "annotation" mapping information to "C:\wamp\www\doctrine2-tuto\src"
    aucune erreure n'est signaler Mais les classe Entiity ne sont pas creer. bizare

    Voici mon bootsrrasp
    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
    # bootstrap.php
     
    require_once join(DIRECTORY_SEPARATOR, [__DIR__, 'vendor', 'autoload.php']);
     
    use Doctrine\ORM\Tools\Setup;
    use Doctrine\ORM\EntityManager;
     
    $entitiesPath = [
        join(DIRECTORY_SEPARATOR, [__DIR__, "src", "Entity"])
    ];
     
    $isDevMode = true;
    $proxyDir = null;
    $cache = null;
    $useSimpleAnnotationReader = false;
     
    // Connexion à la base de données
    $dbParams = [
        'driver'   => 'pdo_mysql',
        'host'     => 'localhost',
        'charset'  => 'utf8',
        'user'     => 'root',
        'password' => '',
        'dbname'   => 'ducerf',
    ];
     
    $config = Setup::createAnnotationMetadataConfiguration(
        $entitiesPath,
        $isDevMode,
        $proxyDir,
        $cache,
        $useSimpleAnnotationReader
        );
    $entityManager = EntityManager::create($dbParams, $config);
     
    return $entityManager;
    ?>
    le cli-config.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    <?php
    # cli-config.php
     
    $entityManager = require_once join(DIRECTORY_SEPARATOR, [__DIR__, 'bootstrap.php']);
     
    use Doctrine\ORM\Tools\Console\ConsoleRunner;
     
    return ConsoleRunner::createHelperSet($entityManager);
    ?>

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Tu sembles utiliser une version obsolète de doctrine, je ne trouve pas ces erreurs dans la dernière version. Peux-tu mettre à jour?

  5. #5
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    j utilise cette version
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    composer require doctrine/orm:^2.5
    je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "require" : {
    		"doctrine/orm" : "*"
    	}
    quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    C:\wamp\www\doctrine2-tuto>vendor\bin\doctrine orm:convert-mapping --from-database --namespace='Entity\' annotation src/
    ca me doone[
    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
     
     
    C:\wamp\www\doctrine2-tuto>vendor\bin\doctrine orm:convert-mapping --from-database --namespace='Entity\' annotation src/
     
    Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2636
     
    Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in C:\wamp\www\doctrine2-tuto\vendor\doctrine\orm\lib\Doctrine\ORM\UnitOfWork.php on line 2665
    Processing entity "'Entity\'Admin"
    Processing entity "'Entity\'Commentaire"
    Processing entity "'Entity\'Creersujet"
    Processing entity "'Entity\'Membre"
    Processing entity "'Entity\'Sujet"
     
     
      [Doctrine\ORM\Tools\Export\ExportException]
      Attempting to overwrite an existing file 'C:\wamp\www\doctrine2-tuto\src/'Entity/'Admin.php'.

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    L'erreur arrive parce que tu es en PHP 7.3. Passe à la version 2.6 de doctrine qui supporte PHP 7.3, j'ai fait une convert:mapping récemment avec la 2.6 et je n'ai pas eu ce problème.

  7. #7
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Merci beaucoup. ca marche maintenant
    voila le composer.json
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
    	"require" : {
    		"doctrine/orm" : "2.6"
    	}
    }

  8. #8
    Membre averti Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    632
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 632
    Points : 405
    Points
    405
    Par défaut
    Doctrine2 ne mappe pas les relations entre tables.
    Il y a t il une autre solution que de saisir soi même les classes one to many et many to many ?
    Merci

Discussions similaires

  1. [AC-2013] Envoi de mail depuis une bdd access avec un nom de sender que je choisis
    Par alpha_du_centaure dans le forum Access
    Réponses: 8
    Dernier message: 22/12/2014, 21h35
  2. Récupérer des données depuis une BDD sur un serveur de mon site web
    Par kookitanou dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 30/10/2012, 10h52
  3. Plugin de génération EJB Entity depuis une BdD
    Par j'suisStateful dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 03/10/2007, 16h55

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