You are here

public function Session::handle in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/StackMiddleware/Session.php \Drupal\Core\StackMiddleware\Session::handle()

Handles a Request to convert it to a Response.

When $catch is true, the implementation must catch all exceptions and do its best to convert them to a Response instance.

Parameters

Request $request A Request instance:

int $type The type of the request: (one of HttpKernelInterface::MASTER_REQUEST or HttpKernelInterface::SUB_REQUEST)

bool $catch Whether to catch exceptions or not:

Return value

Response A Response instance

Throws

\Exception When an Exception occurs during processing

Overrides HttpKernelInterface::handle

File

core/lib/Drupal/Core/StackMiddleware/Session.php, line 55
Contains \Drupal\Core\StackMiddleware\Session.

Class

Session
Wrap session logic around a HTTP request.

Namespace

Drupal\Core\StackMiddleware

Code

public function handle(Request $request, $type = self::MASTER_REQUEST, $catch = TRUE) {
  if ($type === self::MASTER_REQUEST && PHP_SAPI !== 'cli') {
    $session = $this->container
      ->get($this->sessionServiceName);
    $session
      ->start();
    $request
      ->setSession($session);
  }
  $result = $this->httpKernel
    ->handle($request, $type, $catch);
  if ($type === self::MASTER_REQUEST && $request
    ->hasSession()) {
    $request
      ->getSession()
      ->save();
  }
  return $result;
}