我正在编写安装配置文件,并且想要注意用户是否有较低的" max_execution_time"和" memory_limit"值。据我所知,Drupal必须检查myprofile.install文件以了解可能的要求,所以我放置了以下内容:
function myprofile_requirements($phase) {
$requirements = array();
// Min required PHP execution time
$min_time = 60;
// Min required memory limit, Mb
$min_memory = 128;
// Get current value of "max_execution_time"
$time = ini_get('max_execution_time');
// Get current value of "max_execution_time"
$memory = ini_get('memory_limit');
// Get "raw" numeric value
preg_match("|\d+|", $memory, $value);
$severity_time = ($time < $min_time) ? REQUIREMENT_WARNING : REQUIREMENT_OK;
$severity_memory = ($value[0] < $min_memory) ? REQUIREMENT_WARNING : REQUIREMENT_OK;
$t = get_t();
if ($phase == 'install') {
$requirements['max_execution_time'] = array(
'title' => $t('PHP max execution time'),
'value' => $t('Please increase the parameter "max_execution_time" in your PHP settings . Recommended value is at least @min sec. and more (now you have @current sec.',
array('@min' => $min_time, '@current' => $time)),
'severity' => $severity_time,
);
$requirements['memory_limit'] = array(
'title' => $t('PHP memory limit'),
'value' => $t('Please increase the parameter "memory_limit" in your PHP settings . Recommended value is at least @minM and more (now you have @current',
array('@min' => $min_memory, '@current' => $memory)),
'severity' => $severity_memory,
);
}
return $requirements;
}
它不起作用 - Drupal simple忽略了上面的代码。怎么了?
答案 0 :(得分:1)
看起来hook_requirements()
未在安装配置文件中调用,它在以下阶段调用:
请注意,上面的install
指的是正在安装的模块,而不是整个安装配置文件。