55 public function __construct(array $configuration =
null)
57 $configuration = $configuration ??
$GLOBALS[
'TYPO3_CONF_VARS'][
'FE'][
'cacheHash'] ?? [];
69 return !empty($params) ? md5(serialize($params)) :
'';
93 if (empty($this->requireCacheHashPresenceParameters)) {
96 $hasRequiredParameter =
false;
98 foreach ($parameterNames as $parameterName) {
99 if (in_array($parameterName, $this->requireCacheHashPresenceParameters,
true)) {
100 $hasRequiredParameter =
true;
104 return $hasRequiredParameter;
119 $relevantParameters = [];
120 foreach ($parameters as $parameterName => $parameterValue) {
130 $relevantParameters[$parameterName] = $parameterValue;
132 if (!empty($relevantParameters)) {
133 if (empty($parameters[
'id'])) {
134 throw new \RuntimeException(
'ID parameter needs to be passed for the cHash calculation!', 1467983513);
136 $relevantParameters[
'id'] = $parameters[
'id'];
138 $relevantParameters[
'encryptionKey'] =
$GLOBALS[
'TYPO3_CONF_VARS'][
'SYS'][
'encryptionKey'];
139 ksort($relevantParameters);
141 return $relevantParameters;
155 $parameters = array_filter(explode(
'&', ltrim($queryString,
'?')));
156 $parameterArray = [];
157 foreach ($parameters as $parameter) {
159 $parts = GeneralUtility::trimExplode(
'=', $parameter,
false);
160 $parameterName = $parts[0];
161 $parameterValue = $parts[1] ??
'';
162 if (trim($parameterName) ===
'') {
166 $parameterArray[rawurldecode($parameterName)] = rawurldecode($parameterValue);
168 return $parameterArray;
180 return $key ===
'ADMCMD_noBeUser' || $key ===
'ADMCMD_view' || $key ===
'ADMCMD_editIcons'
181 || $key ===
'ADMCMD_simUser' || $key ===
'ADMCMD_simTime' || $key ===
'ADMCMD_prev'
182 || stripos($key,
'TSFE_ADMIN_PANEL') !==
false && preg_match(
'/TSFE_ADMIN_PANEL\\[.*?\\]/', $key);
193 return $key ===
'id' || $key ===
'type' || $key ===
'no_cache' || $key ===
'cHash' || $key ===
'MP' || $key ===
'ftu';
204 return in_array($key, $this->excludedParameters,
true);
215 return in_array($key, $this->cachedParametersWhiteList,
true);
225 return !empty($this->cachedParametersWhiteList);
236 return !($this->excludeAllEmptyParameters || in_array($key, $this->excludedParametersIfEmpty,
true));
247 foreach ($configuration as $name => $value) {
248 $setterName =
'set' . ucfirst($name);
249 if (method_exists($this, $setterName)) {
250 $this->{$setterName}($value);