示例#1
0
 public static function getAllModules()
 {
     $modules = array();
     $base = \Simplify::config()->get('app:dir') . 'modules';
     $path = '/';
     if (!is_dir($base . $path) && !mkdir($base . $path, 0655)) {
         throw new AmplifyException('Application modules dir not found and could not be created: ' . $base . $path);
     }
     $it = new \DirectoryIterator($base . $path);
     while ($it->valid()) {
         if (!$it->isDot()) {
             if ($it->isDir()) {
                 $filename = $path . $it->getFilename() . '/Module.php';
                 if (file_exists($base . $filename)) {
                     require_once $base . $filename;
                     $class = \Simplify\Inflector::camelize($it->getFilename()) . '\\Module';
                     if (class_exists($class) && is_subclass_of($class, '\\Amplify\\Module')) {
                         $modules[addslashes($class)] = new $class();
                         $modules[addslashes($class)]->active = \Amplify\Modules::isActive($class);
                     }
                 }
             }
             /*
              * elseif (strrpos($it->getFilename(), 'Module.php') !== false) {
              * $filename = $path . $it->getFilename();
              *
              * require_once ($base . $filename);
              *
              * $class = $it->getBasename('.php');
              *
              * if (class_exists($class) && is_subclass_of($class, '\Amplify\Module')) {
              * $modules[$filename] = new $class();
              * $modules[$filename]->active = \Amplify\Modules::isActive($filename);
              * }
              * }
              */
         }
         $it->next();
     }
     return $modules;
 }