3 namespace Friendica\Core\Session;
5 use Friendica\Core\Config\Configuration;
7 use Friendica\Model\User\Cookie;
10 * The native Session class which uses the PHP internal Session function
12 class Native implements ISession
17 public function __construct(Configuration $config, Cookie $cookie)
19 ini_set('session.gc_probability', 50);
20 ini_set('session.use_only_cookies', 1);
21 ini_set('session.cookie_httponly', 1);
23 if ($config->get('system', 'ssl_policy') == App\BaseURL::SSL_POLICY_FULL) {
24 ini_set('session.cookie_secure', 1);
27 $this->cookie = $cookie;
33 public function start()
42 public function exists(string $name)
44 return isset($_SESSION[$name]);
50 public function get(string $name, $defaults = null)
52 return $_SESSION[$name] ?? $defaults;
58 public function set(string $name, $value)
60 $_SESSION[$name] = $value;
66 public function setMultiple(array $values)
68 $_SESSION = $values + $_SESSION;
74 public function remove(string $name)
76 unset($_SESSION[$name]);
82 public function clear()
88 * @brief Kills the "Friendica" cookie and all session data
90 public function delete()
92 $this->cookie->clear();