/** * This function will check for everything (DB, PHP and PHP extensions for now) * returning an array of environment_result objects. * * @global object * @param string $version xml version we are going to use to test this server * @param int $env_select one of ENV_SELECT_NEWER | ENV_SELECT_DATAROOT | ENV_SELECT_RELEASE decide xml to use. * @return array array of results encapsulated in one environment_result object */ function environment_check($version, $env_select) { global $CFG; /// Normalize the version requested $version = normalize_version($version); $results = array(); //To store all the results /// Only run the moodle versions checker on upgrade, not on install if (!empty($CFG->version)) { $results[] = environment_check_moodle($version, $env_select); } $results[] = environment_check_unicode($version, $env_select); $results[] = environment_check_database($version, $env_select); $results[] = environment_check_php($version, $env_select); if ($result = environment_check_pcre_unicode($version, $env_select)) { $results[] = $result; } $phpext_results = environment_check_php_extensions($version, $env_select); $results = array_merge($results, $phpext_results); $phpsetting_results = environment_check_php_settings($version, $env_select); $results = array_merge($results, $phpsetting_results); $custom_results = environment_custom_checks($version, $env_select); $results = array_merge($results, $custom_results); return $results; }
/** * This function will check for everything (DB, PHP and PHP extensions for now) * returning an array of environment_result objects. * * @global object * @param string $version xml version we are going to use to test this server * @param int $env_select one of ENV_SELECT_NEWER | ENV_SELECT_DATAROOT | ENV_SELECT_RELEASE decide xml to use. * @return environment_results[] array of results encapsulated in one environment_result object */ function environment_check($version, $env_select) { global $CFG; if ($env_select != ENV_SELECT_NEWER and $env_select != ENV_SELECT_DATAROOT and $env_select != ENV_SELECT_RELEASE) { throw new coding_exception('Incorrect value of $env_select parameter'); } /// Normalize the version requested $version = normalize_version($version); $results = array(); //To store all the results /// Only run the moodle versions checker on upgrade, not on install if (!empty($CFG->version)) { $results[] = environment_check_moodle($version, $env_select); } $results[] = environment_check_unicode($version, $env_select); $results[] = environment_check_database($version, $env_select); $results[] = environment_check_php($version, $env_select); if ($result = environment_check_pcre_unicode($version, $env_select)) { $results[] = $result; } $phpext_results = environment_check_php_extensions($version, $env_select); $results = array_merge($results, $phpext_results); $phpsetting_results = environment_check_php_settings($version, $env_select); $results = array_merge($results, $phpsetting_results); $custom_results = environment_custom_checks($version, $env_select); $results = array_merge($results, $custom_results); // Always use the plugin directory version of environment.xml, // add-on developers need to keep those up-to-date with future info. foreach (core_component::get_plugin_types() as $plugintype => $unused) { foreach (core_component::get_plugin_list_with_file($plugintype, 'environment.xml') as $pluginname => $unused) { $plugin = $plugintype . '_' . $pluginname; $result = environment_check_database($version, $plugin); if ($result->error_code != NO_VERSION_DATA_FOUND and $result->error_code != NO_DATABASE_SECTION_FOUND and $result->error_code != NO_DATABASE_VENDORS_FOUND) { $result->plugin = $plugin; $results[] = $result; } $result = environment_check_php($version, $plugin); if ($result->error_code != NO_VERSION_DATA_FOUND and $result->error_code != NO_PHP_SECTION_FOUND and $result->error_code != NO_PHP_VERSION_FOUND) { $result->plugin = $plugin; $results[] = $result; } $pluginresults = environment_check_php_extensions($version, $plugin); foreach ($pluginresults as $result) { if ($result->error_code != NO_VERSION_DATA_FOUND and $result->error_code != NO_PHP_EXTENSIONS_SECTION_FOUND) { $result->plugin = $plugin; $results[] = $result; } } $pluginresults = environment_check_php_settings($version, $plugin); foreach ($pluginresults as $result) { if ($result->error_code != NO_VERSION_DATA_FOUND) { $result->plugin = $plugin; $results[] = $result; } } $pluginresults = environment_custom_checks($version, $plugin); foreach ($pluginresults as $result) { if ($result->error_code != NO_VERSION_DATA_FOUND) { $result->plugin = $plugin; $results[] = $result; } } } } return $results; }