protected function renderContentCacheEntryIdentifier($typoScriptPath, array $cacheIdentifierValues) { ksort($cacheIdentifierValues); $identifierSource = ''; foreach ($cacheIdentifierValues as $key => $value) { if ($value instanceof CacheAwareInterface) { $identifierSource .= $key . '=' . $value->getCacheEntryIdentifier() . '&'; } elseif (is_string($value) || is_bool($value) || is_integer($value)) { $identifierSource .= $key . '=' . $value . '&'; } elseif ($value !== null) { throw new CacheException(sprintf('Invalid cache entry identifier @cache.entryIdentifier.%s for path "%s". A entry identifier value must be a string or implement CacheAwareInterface.', $key, $typoScriptPath), 1395846615); } } $identifierSource .= 'securityContextHash=' . $this->securityContext->getContextHash(); return md5($typoScriptPath . '@' . $identifierSource); }