translator = $translator;
}
public function execute()
{
$label = $this->translator->translate('Installation_SystemCheckSettings');
$result = new DiagnosticResult($label);
foreach ($this->getRequiredSettings() as $setting) {
list($settingName, $requiredValue) = explode('=', $setting);
$currentValue = (int) ini_get($settingName);
if ($currentValue != $requiredValue) {
$status = DiagnosticResult::STATUS_ERROR;
$comment = sprintf(
'%s
%s
%s
',
$setting,
$this->translator->translate('Installation_SystemCheckPhpSetting', array($setting)),
$this->translator->translate('Installation_RestartWebServer')
);
} else {
$status = DiagnosticResult::STATUS_OK;
$comment = $setting;
}
$result->addItem(new DiagnosticResultItem($status, $comment));
}
return array($result);
}
/**
* @return string[]
*/
private function getRequiredSettings()
{
$requiredSettings = array(
// setting = required value
// Note: value must be an integer only
'session.auto_start=0',
);
if ($this->isPhpVersionAtLeast56() && ! defined("HHVM_VERSION") && !$this->isPhpVersionAtLeast70()) {
// always_populate_raw_post_data must be -1
// removed in PHP 7
$requiredSettings[] = 'always_populate_raw_post_data=-1';
}
return $requiredSettings;
}
private function isPhpVersionAtLeast56()
{
return version_compare(PHP_VERSION, '5.6', '>=');
}
private function isPhpVersionAtLeast70()
{
return version_compare(PHP_VERSION, '7.0.0-dev', '>=');
}
}