public function registerModule($baseDir, $MODULE_NAME) { // read module.ini file (if it exists) from module's directory if (file_exists("{$baseDir}/{$MODULE_NAME}/module.ini")) { $entries = parse_ini_file("{$baseDir}/{$MODULE_NAME}/module.ini"); // check that current PHP version is greater or equal than module's // minimum required PHP version if (isset($entries["minimum_php_version"])) { $minimum = $entries["minimum_php_version"]; $current = phpversion(); if (strnatcmp($minimum, $current) > 0) { $this->logger->log('WARN', "Could not load module" . " {$MODULE_NAME} as it requires at least PHP version '{$minimum}'," . " but current PHP version is '{$current}'"); return; } } } $newInstances = Registry::getNewInstancesInDir("{$baseDir}/{$MODULE_NAME}"); foreach ($newInstances as $name => $className) { $this->registerInstance($MODULE_NAME, $name, new $className()); } if (count($newInstances) == 0) { $this->logger->log('ERROR', "Could not load module {$MODULE_NAME}. No classes found with @Instance annotation!"); return; } }
private function createGlobalInstances() { $newInstances = Registry::getNewInstancesInDir("./core"); foreach ($newInstances as $name => $className) { Registry::setInstance($name, new $className()); } }