session.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /*
  3. *
  4. *
  5. * @author Taddeus Kroes
  6. * @date 05-10-2012
  7. */
  8. namespace webbasics;
  9. require_once 'base.php';
  10. class Session {
  11. private static $instance;
  12. static function getInstance() {
  13. if (self::$instance === null)
  14. self::$instance = new self;
  15. return self::$instance;
  16. }
  17. /**
  18. * @codeCoverageIgnore
  19. */
  20. private function __construct() {
  21. session_start();
  22. }
  23. function set($names, $value=null) {
  24. if (is_array($names)) {
  25. foreach ($names as $name => $value)
  26. $this->set($name, $value);
  27. } else {
  28. $_SESSION[$names] = $value;
  29. }
  30. }
  31. function get($names) {
  32. if (is_array($names)) {
  33. $values = array();
  34. foreach ($names as $name)
  35. $values[] = $_SESSION[$name];
  36. return $values;
  37. }
  38. return $_SESSION[$names];
  39. }
  40. function isRegistered($name) {
  41. return isset($_SESSION[$name]);
  42. }
  43. function areRegistered(array $names) {
  44. foreach ($names as $name) {
  45. if (!isset($_SESSION[$name]))
  46. return false;
  47. }
  48. return true;
  49. }
  50. function regenerateId() {
  51. session_regenerate_id();
  52. }
  53. /**
  54. * @codeCoverageIgnore
  55. */
  56. function close() {
  57. session_write_close();
  58. }
  59. function clear() {
  60. $_SESSION = array();
  61. }
  62. function destroy($clear=false) {
  63. if ($clear)
  64. $this->clear();
  65. session_destroy();
  66. self::$instance = null;
  67. }
  68. }
  69. ?>