Doctrine 2.1.0 : Reverse engineering

Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012 - 8 déc. 2011 à 18:47
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012 - 10 déc. 2011 à 15:44
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.

2 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
9 déc. 2011 à 10:22
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.
0
Sniperman113 Messages postés 98 Date d'inscription mercredi 8 octobre 2003 Statut Membre Dernière intervention 21 février 2012
10 déc. 2011 à 15:44
0
Rejoignez-nous