isInstall() || $mode->isBackend()) { $session = new Session\Memory(); } else { $session_handler = $config->get('system', 'session_handler', self::HANDLER_DEFAULT); $handler = null; switch ($session_handler) { case self::HANDLER_DATABASE: $handler = new Session\Handler\Database($dba, $logger, $server); break; case self::HANDLER_CACHE: // In case we're using the db as cache driver, use the native db session, not the cache if ($config->get('system', 'cache_driver') === Type::DATABASE) { $handler = new Session\Handler\Database($dba, $logger, $server); } else { $handler = new Session\Handler\Cache($cache, $logger, $server); } break; } $session = new Session\Native($baseURL, $handler); } } finally { $profiler->saveTimestamp($stamp1, 'parser', System::callstack()); return $session; } } }