public function loadModules($dirs, $autoload = true, $prefix = false)
{
$modules = [];
$dirs = (array) $dirs;
foreach ($dirs as &$dir) {
if (file_exists($dir)) {
$pfx = is_bool($prefix) ? strtolower(basename($dir)) : $prefix;
// load modules
foreach (new \DirectoryIterator($dir) as $module) {
if ($module->isFile() || $module->isDot()) {
continue;
}
$name = $prefix ? "{$pfx}-" . $module->getBasename() : $module->getBasename();
$this->registerModule($name, $module->getRealPath());
$modules[] = strtolower($module);
}
if ($autoload) {
$this["autoload"]->append($dir);
}
}
}
return $modules;
}