protected function loadCache()
{
if ($this->isCacheValid() === false) {
return null;
}
$data = null;
try {
$data = $this->cacheFile->parse();
} catch (ParseException $e) {
// JSON is invalid, remove the file
$this->invalidateCache();
} catch (IOException $e) {
$part = Translator::__('Try logging in with your ftp-client and make the file readable. ' . 'Else try to go <a>back</a> to the last page.');
$message = '<p>' . Translator::__('general.phrase.file-not-readable-following-colon') . '</p>' . '<pre>' . htmlspecialchars($this->cacheFile->getFullPath()) . '</pre>' . '<p>' . str_replace('<a>', '<a href="javascript:history.go(-1)">', $part) . '</p>';
throw new RuntimeException(Translator::__('page.file-management.message.file-not-readable' . $message), $e->getCode(), $e);
}
// Check if we loaded actual data.
if (count($data) < 4 || empty($data['general'])) {
return null;
}
// Yup, all seems to be right.
return $data;
}