requestStack->getCurrentRequest()->headers->all(); // Order headers by name to have less cache variations. ksort($headers); $result = ''; foreach ($headers as $name => $value) { if ($result) { $result .= '&'; } // Sort values to minimize cache variations. sort($value); $result .= $name . '=' . implode(',', $value); } return $result; } elseif ($this->requestStack->getCurrentRequest()->headers->has($header)) { $value = $this->requestStack->getCurrentRequest()->headers->get($header); if ($value !== '') { return $value; } return '?valueless?'; } return ''; } /** * {@inheritdoc} */ public function getCacheableMetadata($header = NULL) { return new CacheableMetadata(); } }