You are here

public function Session::handle in Drupal 9

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

File

core/lib/Drupal/Core/StackMiddleware/Session.php, line 50

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;
}