Пример #1
0
 /**
  * @param \Venne\Module\IModule $module
  * @return array
  * @throws \Exception
  */
 protected function getAllClasses()
 {
     // find files
     $robotLoader = new \Nette\Loaders\RobotLoader();
     $robotLoader->setCacheStorage(new \Nette\Caching\Storages\MemoryStorage());
     foreach ($this->context->parameters['modules'] as $name => $item) {
         if ($item[ModuleManager::MODULE_STATUS] === ModuleManager::STATUS_INSTALLED) {
             $path = $this->context->expand($item[ModuleManager::MODULE_PATH]) . '/' . ucfirst($name) . 'Module';
             if (file_exists($path)) {
                 $robotLoader->addDirectory($path);
             }
         }
     }
     $robotLoader->register();
     $entities = $robotLoader->getIndexedClasses();
     // classes
     $classes = array();
     foreach ($entities as $class => $item) {
         if (\Nette\Reflection\ClassType::from('\\' . $class)->hasAnnotation('ORM\\Entity')) {
             $classes[] = $class;
         }
     }
     $robotLoader->unregister();
     return $classes;
 }