Doctrine 2 - problemi con “Getting Started XML-Edition” - la generazione di schema del database

StackOverflow https://stackoverflow.com/questions/3551686

Domanda

Non avendo mai toccato prima Dottrina (1 o 2), sto seguendo questo tutorial per Doctrine 2 .

Sono al punto in cui io uso la linea di comando per generare lo schema del database. Questo è il file cli-config.php, come per il tutorial:

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

Quando eseguo, però, ottengo solo un errore:

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

Perché quella classe a cui fa riferimento il file cli-config.php non esiste. Ho anche provato tranciatura il file cli-config.php, che ovviamente non funziona neanche - "Non è definito 'dice che' L'aiutante" em

Sto utilizzando la versione 2.0.0BETA3. So che questa è una versione beta, in modo che potessero hanno cambiato alcuni file in giro, ma non riesco a trovare da nessuna parte che la classe.

Tutte le idee su come farlo funzionare?

È stato utile?

Soluzione

La documentazione nel codice XML Operazioni preliminari siano obsolete in questo senso. Si prega di consultare la sezione Strumenti nel manuale su come configurare lo strumento CLI:

http: // docs .doctrine-project.org / progetti / doctrine-orm / it / 2.0.x / riferimento / tools.html

Tutto il resto ancora funziona come descritto. Voglio aggiornare questa parte al più presto.

Altri suggerimenti

Supponendo che si è installato Dottrina utilizzando pera

$ sudo pera installare pear.doctrine-project.org/doctrineORM

che installerà i tre pacchetti 'Doctrine 2': DoctrineCommon, DoctrineDBAL e DoctrineORM. Su Ubuntu, questi pacchetti saranno situati in / usr / share / php / Dottrina, e l'utilità della riga di comando dottrina, verranno installati in / usr / bin.

Con questa impostazione, questa è una versione di cli-config.php è possibile utilizzare (nota: DIR dovrebbe avere due underscore prima e dopo che per qualche motivo non venivano visualizzati.).

<?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)
));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top