public function testTest() { if (!class_exists('Symfony\\Component\\Yaml\\Yaml', true)) { $this->markTestSkipped('Please install Symfony YAML Component into the include path of your PHP installation.'); } $cme = new ClassMetadataExporter(); $converter = new ConvertDoctrine1Schema(__DIR__ . '/doctrine1schema'); $exporter = $cme->getExporter('yml', __DIR__ . '/convert'); $exporter->setOverwriteExistingFiles(true); $exporter->setMetadata($converter->getMetadata()); $exporter->export(); $this->assertTrue(file_exists(__DIR__ . '/convert/User.dcm.yml')); $this->assertTrue(file_exists(__DIR__ . '/convert/Profile.dcm.yml')); $metadataDriver = new \Doctrine\ORM\Mapping\Driver\YamlDriver(__DIR__ . '/convert'); $em = $this->_createEntityManager($metadataDriver); $cmf = new DisconnectedClassMetadataFactory(); $cmf->setEntityManager($em); $metadata = $cmf->getAllMetadata(); $profileClass = $cmf->getMetadataFor('Profile'); $userClass = $cmf->getMetadataFor('User'); $this->assertEquals(2, count($metadata)); $this->assertEquals('Profile', $profileClass->name); $this->assertEquals('User', $userClass->name); $this->assertEquals(4, count($profileClass->fieldMappings)); $this->assertEquals(5, count($userClass->fieldMappings)); $this->assertEquals('text', $userClass->fieldMappings['clob']['type']); $this->assertEquals('test_alias', $userClass->fieldMappings['theAlias']['columnName']); $this->assertEquals('theAlias', $userClass->fieldMappings['theAlias']['fieldName']); $this->assertEquals('Profile', $profileClass->associationMappings['User']['sourceEntity']); $this->assertEquals('User', $profileClass->associationMappings['User']['targetEntity']); $this->assertEquals('username', $userClass->table['uniqueConstraints']['username']['columns'][0]); }
protected function getAllMetadata(array $entity) { $metadata = array(); $cmf = new DisconnectedClassMetadataFactory(); $cmf->setEntityManager($this->_em); foreach ($entity as $e) { $metadata[] = $cmf->getMetadataFor($e); } return $metadata; }
/** * @param string $entity * * @return ClassMetadataCollection */ private function getMetadataForClass($entity) { foreach ($this->registry->getManagers() as $em) { $cmf = new DisconnectedClassMetadataFactory(); $cmf->setEntityManager($em); if (!$cmf->isTransient($entity)) { return new ClassMetadataCollection(array($cmf->getMetadataFor($entity))); } } return new ClassMetadataCollection(array()); }
/** * Entidades::entityManager() * * Prepara el proceso de la creacion de las entidades * @param object $configuracion * @return object */ private function entityManager($configuracion = false) { $entidad = EntityManager::create($this->confg, $configuracion); $entidad->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('set', 'string'); $entidad->getConnection()->getDatabasePlatform()->registerDoctrineTypeMapping('enum', 'string'); // fetch metadata $driver = new DatabaseDriver($entidad->getConnection()->getSchemaManager()); $driver->setNamespace('Entidades\\' . $this->conexion . '\\'); //Agrega el namespace Entidad\Nombre de la tabla $entidad->getConfiguration()->setMetadataDriverImpl($driver); $cmf = new DisconnectedClassMetadataFactory(); $cmf->setEntityManager($entidad); // we must set the EntityManager $classes = $driver->getAllClassNames(); $metadata = array(); foreach ($classes as $class) { //any unsupported table/schema could be handled here to exclude some classes if (true) { $metadata[] = $cmf->getMetadataFor($class); } } $this->generador($metadata); }