public function testAccess(Request $request, EditorInterface $editor, EmbedButtonInterface $embed_button) { $text = $request->get('value'); $response = new HtmlResponse(['#markup' => $text, '#cache' => ['contexts' => ['url.query_args:value']]]); if ($text == '') { $response->setStatusCode(404); } return $response; }
/** * Sets headers on a response object. * * @param \Drupal\Core\Render\HtmlResponse $response * The HTML response to update. * @param array $headers * The headers to set, as an array. The items in this array should be as * follows: * - The header name. * - The header value. * - (optional) Whether to replace a current value with the new one, or add * it to the others. If the value is not replaced, it will be appended, * resulting in a header like this: 'Header: value1,value2' */ protected function setHeaders(HtmlResponse $response, array $headers) { foreach ($headers as $values) { $name = $values[0]; $value = $values[1]; $replace = !empty($values[2]); // Drupal treats the HTTP response status code like a header, even though // it really is not. if (strtolower($name) === 'status') { $response->setStatusCode($value); } else { $response->headers->set($name, $value, $replace); } } }
/** * Sets headers on a response object. * * @param \Drupal\Core\Render\HtmlResponse $response * The HTML response to update. * @param array $headers * The headers to set. */ protected function setHeaders(HtmlResponse $response, array $headers) { foreach ($headers as $name => $value) { // Drupal treats the HTTP response status code like a header, even though // it really is not. if ($name === 'status') { $response->setStatusCode($value); } $response->headers->set($name, $value, FALSE); } }