You are here

public function RobotsTxtController::content in RobotsTxt 8

Serves the configured robots.txt file.

Return value

\Symfony\Component\HttpFoundation\Response The robots.txt file as a response object with 'text/plain' content type.

2 string references to 'RobotsTxtController::content'
robotstxt.routing.yml in ./robotstxt.routing.yml
robotstxt.routing.yml
robotstxt_test.routing.yml in tests/modules/robotstxt_test/robotstxt_test.routing.yml
tests/modules/robotstxt_test/robotstxt_test.routing.yml

File

src/Controller/RobotsTxtController.php, line 61

Class

RobotsTxtController
Provides output robots.txt output.

Namespace

Drupal\robotstxt\Controller

Code

public function content() {
  $content = [];
  $content[] = $this->moduleConfig
    ->get('content');

  // Hook other modules for adding additional lines.
  if ($additions = $this->moduleHandler
    ->invokeAll('robotstxt')) {
    $content = array_merge($content, $additions);
  }

  // Trim any extra whitespace and filter out empty strings.
  $content = array_map('trim', $content);
  $content = array_filter($content);
  $content = implode("\n", $content);
  $response = new CacheableResponse($content, Response::HTTP_OK, [
    'content-type' => 'text/plain',
  ]);
  $meta_data = $response
    ->getCacheableMetadata();
  $meta_data
    ->addCacheTags([
    'robotstxt',
  ]);
  return $response;
}