4 * @file src/Core/Session.php
6 namespace Friendica\Core;
8 use Friendica\Core\Session\CacheSessionHandler;
9 use Friendica\Core\Session\DatabaseSessionHandler;
10 use Friendica\Util\BaseURL;
13 * High-level Session service class
15 * @author Hypolite Petovan <hypolite@mrpetovan.com>
19 public static $exists = false;
20 public static $expire = 180000;
22 public static function init()
24 ini_set('session.gc_probability', 50);
25 ini_set('session.use_only_cookies', 1);
26 ini_set('session.cookie_httponly', 1);
28 if (Config::get('system', 'ssl_policy') == BaseUrl::SSL_POLICY_FULL) {
29 ini_set('session.cookie_secure', 1);
32 $session_handler = Config::get('system', 'session_handler', 'database');
33 if ($session_handler != 'native') {
34 if ($session_handler == 'cache' && Config::get('system', 'cache_driver', 'database') != 'database') {
35 $SessionHandler = new CacheSessionHandler();
37 $SessionHandler = new DatabaseSessionHandler();
40 session_set_save_handler($SessionHandler);
44 public static function exists($name)
46 return isset($_SESSION[$name]);
50 * Retrieves a key from the session super global or the defaults if the key is missing or the value is falsy.
52 * Handle the case where session_start() hasn't been called and the super global isn't available.
55 * @param mixed $defaults
58 public static function get($name, $defaults = null)
60 if (isset($_SESSION)) {
61 $return = defaults($_SESSION, $name, $defaults);
69 public static function set($name, $value)
71 $_SESSION[$name] = $value;