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]);
 }
Exemplo n.º 2
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());
 }
Exemplo n.º 4
0
 /**
  * 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);
 }