/**
  * @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);
 }
示例#4
0
 /**
  * 
  * 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());
 }