2010-08-23 6 views
1

N'ayant jamais touché Doctrine auparavant (1 ou 2), je suis this tutorial for Doctrine 2. Je suis au point où j'utilise la ligne de commande pour générer le schéma de base de données. Ce fichier est le cli-config.php, selon le tutoriel:Doctrine 2 - Problèmes avec "Getting Started XML-Edition" - Générer un schéma de base de données

<?php 
$cliConfig = new Doctrine\Common\Cli\Configuration(); 
$cliConfig->setAttribute('em', $entityManager); 

Quand je le lance bien, je viens d'obtenir une erreur:

Fatal error: require(): Failed opening required 'Doctrine\Common\Cli\Configuration.php' 

Parce que classe référencée par le cli-config Le fichier .php n'existe pas. J'ai aussi essayé d'effacer le fichier cli-config.php, qui ne fonctionne bien sûr pas non plus - dit que "l'assistant" em "n'est pas défini." J'utilise la version 2.0.0BETA3. Je sais que c'est une version bêta, donc ils auraient pu changer certains fichiers, mais je ne trouve pas cette classe nulle part.

Des idées pour le faire fonctionner?

Répondre

2

En supposant que vous avez installé la doctrine en utilisant poire

installer $ poire sudo pear.doctrine-project.org/doctrineORM

qui installera les trois paquets Doctrine 2 ': DoctrineCommon, DoctrineDBAL et DoctrineORM . Sur Ubuntu, ces paquets seront situés dans/usr/share/php/Doctrine, et l'utilitaire de ligne de commande doctrine sera installé dans/usr/bin.

Avec cette configuration, il s'agit d'une version de cli-config.php que vous pouvez utiliser (note: DIR doit avoir deux traits de soulignement avant et après, pour une raison quelconque, ils ne sont pas affichés).

<?php 
require ‘Doctrine/ORM/Tools/Setup.php’; 
// Setup Autoloader (1) 
Doctrine\ORM\Tools\Setup::registerAutoloadPEAR(); 

require_once 'Doctrine/Common/ClassLoader.php'; 

$classLoader = new Doctrine\Common\ClassLoader('Entities', __DIR__); 

$classLoader->register(); 

$classLoader = new Doctrine\Common\ClassLoader('Proxies', __DIR__); 

$classLoader->register(); 

$config = new \Doctrine\ORM\Configuration(); 

$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache); 

$driverImpl = $config->newDefaultAnnotationDriver(array(__DIR__."/Entities")); 

$config->setMetadataDriverImpl($driverImpl); 

$config->setProxyDir(__DIR__ . '/Proxies'); 

$config->setProxyNamespace('Proxies'); 

$connectionOptions = array(
     'driver' => 'pdo_mysql', 
     'dbname' => 'bugs', 
     'user' => 'bugs', 
     'password' => 'xyzabc', 
    'host' => 'localhost'); 

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

$helperSet = new \Symfony\Component\Console\Helper\HelperSet(array(
    'db' => new \Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper($em->getConnection()), 
    'em' => new \Doctrine\ORM\Tools\Console\Helper\EntityManagerHelper($em) 
)); 
Questions connexes