From: Diogo Cordeiro Date: Fri, 26 Apr 2019 23:28:05 +0000 (+0100) Subject: Some minor refactoring on session handler X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=6cf674f8f8;p=quix0rs-gnu-social.git Some minor refactoring on session handler --- diff --git a/classes/Session.php b/classes/Session.php index a54151c2df..c519f81222 100644 --- a/classes/Session.php +++ b/classes/Session.php @@ -19,45 +19,40 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; class Session extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ - public $__table = 'session'; // table name + public $__table = 'session'; // table name public $id; // varchar(32) primary_key not_null public $session_data; // text() public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE public static function schemaDef() { - return array( - 'fields' => array( - 'id' => array('type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'session ID'), - 'session_data' => array('type' => 'text', 'description' => 'session data'), - 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), - 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), - ), - 'primary key' => array('id'), - 'indexes' => array( - 'session_modified_idx' => array('modified'), - ), - ); - } - - static function logdeb($msg) - { - if (common_config('sessions', 'debug')) { - common_debug("Session: " . $msg); - } + return [ + 'fields' => [ + 'id' => ['type' => 'varchar', 'length' => 32, 'not null' => true, 'description' => 'session ID'], + 'session_data' => ['type' => 'text', 'description' => 'session data'], + 'created' => ['type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'], + 'modified' => ['type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'], + ], + 'primary key' => ['id'], + 'indexes' => [ + 'session_modified_idx' => ['modified'], + ], + ]; } static function open($save_path, $session_name) @@ -87,6 +82,13 @@ class Session extends Managed_DataObject } } + static function logdeb($msg) + { + if (common_config('sessions', 'debug')) { + common_debug("Session: " . $msg); + } + } + static function write($id, $session_data) { self::logdeb("Writing session '$id'"); @@ -97,9 +99,9 @@ class Session extends Managed_DataObject self::logdeb("'$id' doesn't yet exist; inserting."); $session = new Session(); - $session->id = $id; + $session->id = $id; $session->session_data = $session_data; - $session->created = common_sql_now(); + $session->created = common_sql_now(); $result = $session->insert(); @@ -136,36 +138,16 @@ class Session extends Managed_DataObject } } - static function destroy($id) - { - self::logdeb("Deleting session $id"); - - $session = Session::getKV('id', $id); - - if (empty($session)) { - self::logdeb("Can't find '$id' to delete."); - } else { - $result = $session->delete(); - if (!$result) { - common_log_db_error($session, 'DELETE', __FILE__); - self::logdeb("Failed to delete '$id'."); - } else { - self::logdeb("Successfully deleted '$id' (result = $result)."); - } - return $result; - } - } - static function gc($maxlifetime) { self::logdeb("garbage collection (maxlifetime = $maxlifetime)"); $epoch = common_sql_date(time() - $maxlifetime); - $ids = array(); + $ids = []; $session = new Session(); - $session->whereAdd('modified < "'.$epoch.'"'); + $session->whereAdd('modified < "' . $epoch . '"'); $session->selectAdd(); $session->selectAdd('id'); @@ -192,6 +174,27 @@ class Session extends Managed_DataObject } } + static function destroy($id) + { + self::logdeb("Deleting session $id"); + + $session = Session::getKV('id', $id); + + if (empty($session)) { + self::logdeb("Can't find '$id' to delete."); + return false; + } else { + $result = $session->delete(); + if (!$result) { + common_log_db_error($session, 'DELETE', __FILE__); + self::logdeb("Failed to delete '$id'."); + } else { + self::logdeb("Successfully deleted '$id' (result = $result)."); + } + return $result; + } + } + static function setSaveHandler() { self::logdeb("setting save handlers"); @@ -204,7 +207,7 @@ class Session extends Managed_DataObject // Registering an explicit shutdown function should take care of this before // everything breaks on us. register_shutdown_function('Session::cleanup'); - + return $result; } diff --git a/lib/util.php b/lib/util.php index f8ca929209..9466d9c052 100644 --- a/lib/util.php +++ b/lib/util.php @@ -285,14 +285,14 @@ function common_ensure_session() if (common_config('sessions', 'handle')) { Session::setSaveHandler(); } - if (array_key_exists(session_name(), $_GET)) { - $id = $_GET[session_name()]; - } else if (array_key_exists(session_name(), $_COOKIE)) { - $id = $_COOKIE[session_name()]; - } - if (isset($id)) { - session_id($id); - } + if (array_key_exists(session_name(), $_GET)) { + $id = $_GET[session_name()]; + } else if (array_key_exists(session_name(), $_COOKIE)) { + $id = $_COOKIE[session_name()]; + } + if (isset($id)) { + session_id($id); + } @session_start(); if (!isset($_SESSION['started'])) { $_SESSION['started'] = time();