* @since 1.0.0 */ public array $data = []; /** * Get session variable by key. * * @param string $key Value key * * @return mixed * * @since 1.0.0 */ abstract public function get(string $key) : mixed; /** * Store session value by key. * * @param string $key Value key * @param mixed $value Value to store * @param bool $overwrite Overwrite existing values * * @return bool * * @since 1.0.0 */ abstract public function set(string $key, mixed $value, bool $overwrite = false) : bool; /** * Remove value from session by key. * * @param string $key Value key * * @return bool * * @since 1.0.0 */ abstract public function remove(string $key) : bool; /** * Save session. * * @return bool * * @since 1.0.0 */ abstract public function save() : bool; abstract function sessionStart() : void; abstract function sessionEnd() : void; /** * @return string * * @since 1.0.0 */ abstract public function getSID() : string; /** * @param string $sid Session id * * @return void * * @since 1.0.0 */ abstract public function setSID(string $sid) : void; /** * Lock session from further adjustments. * * @return void * * @since 1.0.0 */ abstract public function lock() : void; }