Doctrine 2.1.0 : Reverse engineering

Signaler
Messages postés
99
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
21 février 2012
-
Messages postés
99
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
21 février 2012
-
Bonjour,

Je viens solliciter votre aide car après avoir parcouru de nombreux forums/tutos, je n'arrive toujours pas à générer les models depuis ma base de données.

J'ai donc php sous wamp avec PEAR d'installé et le module ORM de Doctrine installé via PEAR.
Dans un tout autre dossier (celui de mon projet) j'ai aussi la librairie Doctrine 2.1.0.

Ensuite, j'essaye donc d'executer via ligne de commande le fichier php suivant que j'ai récupéré sur un forum et adapaté à mes besoins :

<?php 

ini_set('display_errors', 1);
set_include_path(realpath(__DIR__ . '/../../library/'));

require 'Doctrine/Common/ClassLoader.php';
$classLoader = new \Doctrine\Common\ClassLoader('Doctrine', realpath(__DIR__ . '/../../library/'));
$classLoader->register();

$config = new \Doctrine\ORM\Configuration;
$cache = new \Doctrine\Common\Cache\ApcCache;
$config->setMetadataCacheImpl($cache);
$driverImpl = $config->newDefaultAnnotationDriver(realpath(__DIR__));
$config->setMetadataDriverImpl($driverImpl);
$config->setQueryCacheImpl($cache);
$config->setProxyDir('Proxies');
$config->setProxyNamespace('Infofab');
$connectionOptions = array(
    'dbname' => 'toto',
    'user' => 'root',
    'password' => 'root',
    'host' => 'localhost',
    'driver' => 'pdo_mysql',
);

$em = \Doctrine\ORM\EntityManager::create($connectionOptions, $config);

$sm = $em->getConnection()->getSchemaManager();

$em->getConfiguration()->setMetadataDriverImpl(
    new \Doctrine\ORM\Mapping\Driver\DatabaseDriver(
        $em->getConnection()->getSchemaManager()
    )
);

$cmf = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory($em);
$metadata = $cmf->getAllMetadata();

$cme = new \Doctrine\ORM\Tools\Export\ClassMetadataExporter();
$exporter = $cme->getExporter('annotation', 'Infofab');
$exporter->setMetadata($metadata);
$etg = new \Doctrine\ORM\Tools\EntityGenerator;
$exporter->setEntityGenerator($etg);
$exporter->export();

?>



Problème, cela ne fonctionne pas, j'ai l'erreur suivante :
"PHP Fatal error: Call to a member function getConfiguration() on a non-object in C:\toto\library\Doctrine\ORM\Mapping\ClassMetadataFactory.php on line 136"

J'ai essayé plein d'autres méthodes trouvées à gauche et à droite mais aucune ne marche.
Si quelqu'un peut éclairer ma lanterne pcq la je suis vraiment perdu et j'ai absolument besoin de générer les models à partir de ma bdd déjà existante.

Merci d'avance.
A voir également:

2 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

A défaut de faire fonctionner ceci, tu peux essayer d'utiliser MySQL Workbench, il me semble qu'il est capable de générer tout ce qu'il faut à partir d'une base déjà existante.
Messages postés
99
Date d'inscription
mercredi 8 octobre 2003
Statut
Membre
Dernière intervention
21 février 2012