function getEntitiesMetaData($em) { $cmf = new Doctrine\ORM\Tools\DisconnectedClassMetadataFactory(); $cmf->setEntityManager($em); // we must set the EntityManager $driver = $em->getConfiguration()->getMetadataDriverImpl(); $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); } } return $metadata; }
protected function sql2Yaml($sql) { \DBG::activate(DBG_PHP); $em = \Env::get('em'); $em->getConfiguration()->setMetadataDriverImpl(new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($em->getConnection()->getSchemaManager())); $cmf = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory(); $cmf->setEntityManager($em); return; $metadata = $cmf->getMetadataFor('ContrexxContentPage'); //$metadata = $cmf->getAllMetadata(); $exporter = $cme->getExporter('yml', '/path/to/export/yml'); $exporter->setMetadata($metadata); return $exporter->export(); }
public function getMetadata($entity_name) { $cmf = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory(); $cmf->setEntityManager($this->_em); return $cmf->getMetadataFor($entity_name); }
/** * * Genera las tablas a partir de los modelos especificados en el array $classes * El alias no es mas que el nombre acortado del bundle de donde pertenecen los * modelos * * $this->getStore()->generateSchema('exampleBundle',array('Persona')); * * @param string $alias nombre acortado del bundle donde pertenecen los modelos * @param array $classes clases modelos a generar sus tablas */ public function generateSchema($alias, $classes = array()) { $schemaTool = new \Doctrine\ORM\Tools\SchemaTool($this->entityManager); $driver = $this->entityManager->getConfiguration()->newDefaultAnnotationDriver($this->annotations); $this->entityManager->getConfiguration()->setMetadataDriverImpl($driver); $cmf = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory(); $cmf->setEntityManager($this->entityManager); $metaInformation = new ItemList($classes); $me = $this; $schemas = array(); $metaInformation->each(function ($key, $value, $list) use(&$alias, &$cmf, &$me, &$schemas) { $meta = $cmf->getMetadataFor($alias . ':' . $value); $list->set($key, $meta); $tableDef = explode('.', $meta->table['name']); if (count($tableDef) > 1) { $schemas[$tableDef[0]] = $tableDef[0]; } }); $schemaTool->createSchema($metaInformation->getArray()); }