AnnotationRegistry::registerFile(__DIR__ . '/../vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/DoctrineAnnotations.php'); $driver = new AnnotationDriver(new CachedReader(new AnnotationReader(), new ArrayCache()), array(__DIR__ . '/../library/Xi/Filelib/Backend/Adapter/DoctrineOrm/Entity')); $config = new Configuration(); $config->setMetadataDriverImpl($driver); $config->setProxyDir(ROOT_TESTS . '/data/temp'); $config->setProxyNamespace('Proxies'); $em = EntityManager::create($this->connectionOptions, $config); $st = new SchemaTool($em); $metadata = $st->getCreateSchemaSql($em->getMetadataFactory()->getAllMetadata()); return join(";\n", $metadata) . ";\n"; } } if ($argc < 2) { echo <<<EOT usage: php {$argv['0']} <driver> example: php {$argv['0']} sqlite example: php {$argv['0']} mysql example: php {$argv['0']} pgsql EOT; die; } $options['driver'] = 'pdo_' . $argv[1]; $options['host'] = '127.0.0.1'; // $options['username'] = '******'; // $options['password'] = '******'; // $options['dbname'] = 'dbname'; $generator = new SchemaGenerator($options); echo $generator->generate();
/** * generateSchema * * @param $className * @return \DOMDocument */ static function generateSchema($className) { $g = new SchemaGenerator(); return $g->generate($className); }