You are here

fast404.inc in Fast 404 8.2

Same filename and directory in other branches
  1. 8 fast404.inc

Optional include that enables Fast 404 logic.

File

fast404.inc
View source
<?php

/**
 * @file
 * Optional include that enables Fast 404 logic.
 */
use Drupal\Core\Site\Settings;
use Drupal\fast404\Fast404;
use Symfony\Component\HttpFoundation\Request;

/**
 * Fast 404 preboot.
 *
 * It's likely that the settings.php include will need refactoring when the
 * number of bootstrap phases is reduced and the kernel utilised more fully:
 * - https://drupal.org/node/2023495
 * - https://drupal.org/node/2016629
 *
 * @param array $settings
 *   The settings from settings.php.
 */
function fast404_preboot(array $settings = []) {

  // We must instantiate a Settings object before attempting to Settings::get().
  new Settings($settings);

  // Load the Fast404 class from within the module directory. Since modules
  // haven't been loaded at this point we cannot use the autoloader.
  require_once __DIR__ . '/src/Fast404.php';

  // Create a request object so we have something to pass Fast404.
  $request = Request::createFromGlobals();

  // This is pretty much a wrote copy of the Fast404EventSubscriber class that
  // fires when the module is enabled.
  $fast_404 = new Fast404($request);
  $fast_404
    ->extensionCheck();
  if ($fast_404
    ->isPathBlocked()) {
    $fast_404
      ->response();
  }
  $fast_404
    ->pathCheck();
  if ($fast_404
    ->isPathBlocked()) {
    $fast_404
      ->response();
  }
}

Functions

Namesort descending Description
fast404_preboot Fast 404 preboot.