public function getAvailableModules() { $modulePath = $this->mountPath . '.module'; $modulePath = preg_replace('/^\\.+/', '', $modulePath); $moduleDir = ClassLoader::getRealPath($modulePath); $modules = array(); if (is_dir($moduleDir)) { foreach (new DirectoryIterator($moduleDir) as $node) { if ($node->isDir() && !$node->isDot()) { $module = new ConfigurationContainer($modulePath . '.' . $node->getFileName(), $this->application); $modules[$module->getMountPath()] = $module; $modules = array_merge($modules, $module->getAvailableModules()); } } } return $modules; }