<?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
namespace Friendica\Core\Session;
/**
* Usable for backend processes (daemon/worker) and testing
+ *
+ * @todo after replacing the last direct $_SESSION call, use a internal array instead of the global variable
*/
-final class Memory implements ISession
+class Memory extends AbstractSession implements ISession
{
- private $data = [];
-
- public function start()
+ public function __construct()
{
// Backward compatibility until all Session variables are replaced
// with the Session class
$_SESSION = [];
- $this->clear();
- return $this;
- }
-
- /**
- * @inheritDoc
- */
- public function exists(string $name)
- {
- return isset($this->data[$name]);
- }
-
- /**
- * @inheritDoc
- */
- public function get(string $name, $defaults = null)
- {
- return $this->data[$name] ?? $defaults;
- }
-
- /**
- * @inheritDoc
- */
- public function set(string $name, $value)
- {
- $this->data[$name] = $value;
- }
-
- /**
- * @inheritDoc
- */
- public function setMultiple(array $values)
- {
- foreach ($values as $key => $value) {
- $this->data[$key] = $value;
- }
- }
-
- /**
- * @inheritDoc
- */
- public function remove(string $name)
- {
- if ($this->exists($name)) {
- unset($this->data[$name]);
- return true;
- }
-
- return false;
- }
-
- /**
- * @inheritDoc
- */
- public function clear()
- {
- $this->data = [];
- return true;
- }
-
- /**
- * @inheritDoc
- */
- public function delete()
- {
- $this->data = [];
- return true;
}
-}
\ No newline at end of file
+}