/** * List all submodules of a module * @param ApiBase $module * @param boolean $recursive * @return string[] */ private function listAllSubmodules(ApiBase $module, $recursive) { $manager = $module->getModuleManager(); if ($manager) { $paths = []; $names = $manager->getNames(); sort($names); foreach ($names as $name) { $submodule = $manager->getModule($name); $paths[] = $submodule->getModulePath(); if ($recursive && $submodule->getModuleManager()) { $paths = array_merge($paths, $this->listAllSubmodules($submodule, $recursive)); } } } return $paths; }