Doctrine 2 - problemi con “Getting Started XML-Edition” - la generazione di schema del database
-
30-09-2019 - |
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?
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:
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)
));