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; }