/** * @Route /performance/list */ public function listAction() { $cache = new \Raptor\Cache\Cache('performance'); if ($cache->hasCache()) { $performance = $cache->getData(); } else { $performance = new ItemList(); } $series = array(); $performance->each(function ($key, $value) use(&$series) { $item = new ItemList(); $item->set('value', $value); $item->set('no', $key); $series[] = $item->getArray(); }); return $this->JSON(new ItemList($series)); }
/** * @Route /gendoctrine/schema/listClasses */ public function listClassesAction($request) { $bundle = $request->post('name'); $spc = $this->app->getConfigurationLoader()->getBundlesSpecifications(); $absolute = $spc[$bundle]['location']; $supose = new ItemList(glob($absolute . '/Model/Entity/*.php')); $supose->each(function ($key, $value, $list) use($bundle) { $class = new ItemList(); $name = explode($bundle, $value); $name = $name[1]; $class->set('class', $bundle . $name); $className = str_replace('/Model/Entity/', '', $name); $className = str_replace('.php', '', $className); $class->set('class', $bundle . $name); $class->set('name', $className); $list->set($key, $class->getArray()); }); return $this->JSON($supose); }
/** * * 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()); }