Merge pull request #11082 from owncloud/deduplicateDependencyCheck
Deduplicate dependency checks
This commit is contained in:
commit
ba445e85b2
1 changed files with 45 additions and 73 deletions
|
@ -493,78 +493,57 @@ class OC_Util {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Contains the dependencies that should be checked against
|
||||||
|
// classes = class_exists
|
||||||
|
// functions = function_exists
|
||||||
|
// defined = defined
|
||||||
|
// If the dependency is not found the missing module name is shown to the EndUser
|
||||||
|
$dependencies = array(
|
||||||
|
'classes' => array(
|
||||||
|
'ZipArchive' => 'zip',
|
||||||
|
'DOMDocument' => 'dom',
|
||||||
|
),
|
||||||
|
'functions' => array(
|
||||||
|
'xml_parser_create' => 'libxml',
|
||||||
|
'mb_detect_encoding' => 'mb multibyte',
|
||||||
|
'ctype_digit' => 'ctype',
|
||||||
|
'json_encode' => 'JSON',
|
||||||
|
'gd_info' => 'GD',
|
||||||
|
'gzencode' => 'zlib',
|
||||||
|
'iconv' => 'iconv',
|
||||||
|
'simplexml_load_string' => 'SimpleXML'
|
||||||
|
),
|
||||||
|
'defined' => array(
|
||||||
|
'PDO::ATTR_DRIVER_NAME' => 'PDO'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
$missingDependencies = array();
|
||||||
$moduleHint = $l->t('Please ask your server administrator to install the module.');
|
$moduleHint = $l->t('Please ask your server administrator to install the module.');
|
||||||
// check if all required php modules are present
|
|
||||||
if (!class_exists('ZipArchive')) {
|
foreach ($dependencies['classes'] as $class => $module) {
|
||||||
|
if (!class_exists($class)) {
|
||||||
|
$missingDependencies[] = $module;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($dependencies['functions'] as $function => $module) {
|
||||||
|
if (!function_exists($function)) {
|
||||||
|
$missingDependencies[] = $module;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($dependencies['defined'] as $defined => $module) {
|
||||||
|
if (!defined($defined)) {
|
||||||
|
$missingDependencies[] = $module;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($missingDependencies as $missingDependency) {
|
||||||
$errors[] = array(
|
$errors[] = array(
|
||||||
'error' => $l->t('PHP module %s not installed.', array('zip')),
|
'error' => $l->t('PHP module %s not installed.', array($missingDependency)),
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!class_exists('DOMDocument')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('dom')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('xml_parser_create')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('libxml')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('mb_detect_encoding')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => 'PHP module mb multibyte not installed.',
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('ctype_digit')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('ctype')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('json_encode')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('JSON')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!extension_loaded('gd') || !function_exists('gd_info')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('GD')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('gzencode')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('zlib')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('iconv')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('iconv')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (!function_exists('simplexml_load_string')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('SimpleXML')),
|
|
||||||
'hint' => $moduleHint
|
'hint' => $moduleHint
|
||||||
);
|
);
|
||||||
$webServerRestart = true;
|
$webServerRestart = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (version_compare(phpversion(), '5.3.3', '<')) {
|
if (version_compare(phpversion(), '5.3.3', '<')) {
|
||||||
$errors[] = array(
|
$errors[] = array(
|
||||||
'error' => $l->t('PHP %s or higher is required.', '5.3.3'),
|
'error' => $l->t('PHP %s or higher is required.', '5.3.3'),
|
||||||
|
@ -573,13 +552,6 @@ class OC_Util {
|
||||||
);
|
);
|
||||||
$webServerRestart = true;
|
$webServerRestart = true;
|
||||||
}
|
}
|
||||||
if (!defined('PDO::ATTR_DRIVER_NAME')) {
|
|
||||||
$errors[] = array(
|
|
||||||
'error' => $l->t('PHP module %s not installed.', array('PDO')),
|
|
||||||
'hint' => $moduleHint
|
|
||||||
);
|
|
||||||
$webServerRestart = true;
|
|
||||||
}
|
|
||||||
if (((strtolower(@ini_get('safe_mode')) == 'on')
|
if (((strtolower(@ini_get('safe_mode')) == 'on')
|
||||||
|| (strtolower(@ini_get('safe_mode')) == 'yes')
|
|| (strtolower(@ini_get('safe_mode')) == 'yes')
|
||||||
|| (strtolower(@ini_get('safe_mode')) == 'true')
|
|| (strtolower(@ini_get('safe_mode')) == 'true')
|
||||||
|
|
Loading…
Reference in a new issue