/** * * @return waInstallerRequirements */ private static function getInstance() { if (!self::$instance) { self::$instance = new self(); } return self::$instance; }
/** * * @param $requirements * @param $update_config * @return boolean */ public static function checkRequirements(&$requirements, $update_config = false, $action = false) { if (is_null($requirements)) { $requirements = self::getRequirements('wa-installer/lib/config/requirements.php', 'installer'); } $passed = true; $config = array(); $actions = array(self::ACTION_CRITICAL_UPDATE, self::ACTION_UPDATE, self::ACTION_INSTALL); $update = $action && in_array($action, $actions); foreach ($requirements as $subject => &$requirement) { $requirement['passed'] = false; $requirement['note'] = null; $requirement['warning'] = false; $requirement['update'] = $update; waInstallerRequirements::test($subject, $requirement); $passed = $requirement['passed'] && $passed; if ($update_config && isset($requirement['config'])) { $config[$requirement['config']] = $requirement['value']; } if ($requirement['note'] && isset($requirement['allow_skip']) && $requirement['allow_skip']) { unset($requirement); unset($requirements[$subject]); } else { unset($requirement); } } if ($update_config) { try { self::updateGenericConfig($config); } catch (Exception $e) { $requirements[] = array('name' => '', 'passed' => false, 'warning' => $e->getMessage(), 'description' => '', 'note' => ''); $passed = false; } } return $passed; }