modules[] = new Module($info); } } public function getIterator() { return new ArrayIterator($this->modules); } /** * Load a module * * @param string $name * @param array $args */ public function loadModule($name, array $args=[]) {} /** * Unload a loaded module * * @return bool */ public function unloadModule($name) {} /** * * * @return Module[] * @throws InvalidArgumentException */ public function getModules($name) { $ret = []; foreach ($this->modules as $module) { if ($module->getName() == $name) { $ret[] = $module; } } return $ret; } public function hasModule($name) { } }