translator = $translator; } public function execute() { $label = $this->translator->translate('Installation_SystemCheckSettings'); $result = new DiagnosticResult($label); foreach ($this->getRequiredSettings() as $setting) { if (!$setting->check()) { $status = $setting->getErrorResult(); $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 RequiredPhpSetting[] */ private function getRequiredSettings() { $requiredSettings[] = new RequiredPhpSetting('session.auto_start', 0); $maxExecutionTime = new RequiredPhpSetting('max_execution_time', 0); $maxExecutionTime->addRequiredValue(30, '>='); $maxExecutionTime->setErrorResult(DiagnosticResult::STATUS_WARNING); $requiredSettings[] = $maxExecutionTime; if ($this->isPhpVersionAtLeast56() && ! defined("HHVM_VERSION") && !$this->isPhpVersionAtLeast70()) { // always_populate_raw_post_data must be -1 // removed in PHP 7 $requiredSettings[] = new RequiredPhpSetting('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', '>='); } }