public function MaintenanceModeSubscriber::onKernelRequestMaintenance

Same name in this branch
  1. 8.x drupal/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php \Drupal\Core\EventSubscriber\MaintenanceModeSubscriber::onKernelRequestMaintenance()
  2. 8.x drupal/core/modules/user/lib/Drupal/user/EventSubscriber/MaintenanceModeSubscriber.php \Drupal\user\EventSubscriber\MaintenanceModeSubscriber::onKernelRequestMaintenance()
  3. 8.x drupal/core/modules/system/tests/modules/menu_test/lib/Drupal/menu_test/EventSubscriber/MaintenanceModeSubscriber.php \Drupal\menu_test\EventSubscriber\MaintenanceModeSubscriber::onKernelRequestMaintenance()

Returns the site maintenance page if the site is offline.

Parameters

\Symfony\Component\HttpKernel\Event\GetResponseEvent $event: The event to process.

File

drupal/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php, line 40
Contains \Drupal\Core\EventSubscriber\MaintenanceModeSubscriber.

Class

MaintenanceModeSubscriber
Maintenance mode subscriber for controller requests.

Namespace

Drupal\Core\EventSubscriber

Code

public function onKernelRequestMaintenance(GetResponseEvent $event) {
  $request = $event
    ->getRequest();
  $response = $event
    ->getResponse();

  // Continue if the site is online and the response is not a redirection.
  if ($request->attributes
    ->get('_maintenance') != MENU_SITE_ONLINE && !$response instanceof RedirectResponse) {

    // Deliver the 503 page.
    drupal_maintenance_theme();
    drupal_set_title(t('Site under maintenance'));
    $content = theme('maintenance_page', array(
      'content' => filter_xss_admin(t(config('system.maintenance')
        ->get('message'), array(
        '@site' => config('system.site')
          ->get('name'),
      ))),
    ));
    $response = new Response('Service unavailable', 503);
    $response
      ->setContent($content);
    $event
      ->setResponse($response);
  }
}