/** * @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 /resources/publisher/bundles */ public function loadBundlesAction() { $bundles = new ItemList($this->app->getConfigurationLoader()->getBundlesSpecifications()); $vendors = array(); $bundles->each(function ($key, $value) use(&$vendors) { $namespace = $value['namespace']; if ($namespace[0] == '\\') { $namespace = substr($namespace, 1); } $vendor = explode('\\', $namespace); $vendor = $vendor[0]; if (!isset($vendors[$vendor])) { $vendors[$vendor] = array(); $vendors[$vendor][$key] = $value; } else { $vendors[$vendor][$key] = $value; } }); $tree = array(); unset($vendors['Raptor']); foreach ($vendors as $key => $value) { $item = array(); $item['text'] = $key; $item['children'] = array(); $item['expanded'] = true; $item['vendor'] = true; $item['iconCls'] = 'icon-vendor'; foreach ($value as $key2 => $value2) { $children = array(); $children['text'] = $key2 . '<b style="color: #402878">/Resources</b>'; $children['bundle'] = $key2; $children['iconCls'] = 'icon-bundle'; $children['expandable'] = false; $children['vendor'] = false; $children['checked'] = false; $children['namespace'] = $value2['namespace']; $item['children'][] = $children; } $tree[] = $item; } return $this->JSON($tree); }
/** * @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()); }