funky-framadate-front/app/classes/Framadate/Services/SessionService.php

63 lines
1.3 KiB
PHP

<?php
namespace Framadate\Services;
class SessionService {
/**
* Get value of $key in $section, or $defaultValue
*
* @param $section
* @param $key
* @param null $defaultValue
* @return mixed
*/
public function get($section, $key, $defaultValue=null) {
assert(!empty($key));
assert(!empty($section));
$this->initSectionIfNeeded($section);
$returnValue = $defaultValue;
if (isset($_SESSION[$section][$key])) {
$returnValue = $_SESSION[$section][$key];
}
return $returnValue;
}
/**
* Set a $value for $key in $section
*
* @param $section
* @param $key
* @param $value
*/
public function set($section, $key, $value) {
assert(!empty($key));
assert(!empty($section));
$this->initSectionIfNeeded($section);
$_SESSION[$section][$key] = $value;
}
/**
* Remove a session value
*
* @param $section
* @param $key
*/
public function remove($section, $key) {
assert(!empty($key));
assert(!empty($section));
unset($_SESSION[$section][$key]);
}
private function initSectionIfNeeded($section) {
if (!isset($_SESSION[$section])) {
$_SESSION[$section] = [];
}
}
}