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 :
Code PHP :
<?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.