translator = $translator; $this->logger = $logger; } public function execute() { $label = $this->translator->translate('Installation_SystemCheckPageSpeedDisabled'); if (! $this->isPageSpeedEnabled()) { return array(DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_OK)); } $comment = $this->translator->translate('Installation_SystemCheckPageSpeedWarn', array( '(eg. Apache, Nginx or IIS)', )); return array(DiagnosticResult::singleResult($label, DiagnosticResult::STATUS_WARNING, $comment)); } private function isPageSpeedEnabled() { $url = Url::getCurrentUrlWithoutQueryString() . '?module=Installation&action=getEmptyPageForSystemCheck'; try { $page = Http::sendHttpRequest($url, $timeout = 1, $userAgent = null, $destinationPath = null, $followDepth = 0, $acceptLanguage = false, $byteRange = false, // Return headers $getExtendedInfo = true ); } catch(\Exception $e) { $this->logger->info('Unable to test if mod_pagespeed is enabled: the request to {url} failed', array( 'url' => $url, )); // If the test failed, we assume Page speed is not enabled return false; } $headers = $page['headers']; return isset($headers['X-Mod-Pagespeed']) || isset($headers['X-Page-Speed']); } }