diff options
| author | 2013-07-04 19:38:29 +0200 | |
|---|---|---|
| committer | 2013-07-04 19:38:29 +0200 | |
| commit | eb5f05304c253df90873b94ba52d7093115f3850 (patch) | |
| tree | 1152ab618aa5cf884a1f2f2e2d1926da4167a6be /lib/minz/Session.php | |
| parent | 8dd5fd51f74a47e5c80052f27a74cdcd5dd044b9 (diff) | |
| parent | b5f233f6d524ca9f74e9d33bf5692a1a678d7fec (diff) | |
Merge branch 'dev'0.4.0
Diffstat (limited to 'lib/minz/Session.php')
| -rwxr-xr-x | lib/minz/Session.php | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/lib/minz/Session.php b/lib/minz/Session.php new file mode 100755 index 000000000..f9c9c6754 --- /dev/null +++ b/lib/minz/Session.php @@ -0,0 +1,78 @@ +<?php + +/** + * La classe Session gère la session utilisateur + * C'est un singleton + */ +class Session { + /** + * $session stocke les variables de session + */ + private static $session = array (); + + /** + * Initialise la session + */ + public static function init () { + // démarre la session + session_name (md5 (Configuration::selApplication ())); + session_start (); + + if (isset ($_SESSION)) { + self::$session = $_SESSION; + } + } + + + /** + * Permet de récupérer une variable de session + * @param $p le paramètre à récupérer + * @return la valeur de la variable de session, false si n'existe pas + */ + public static function param ($p, $default = false) { + if (isset (self::$session[$p])) { + $return = self::$session[$p]; + } else { + $return = $default; + } + + return $return; + } + + + /** + * Permet de créer ou mettre à jour une variable de session + * @param $p le paramètre à créer ou modifier + * @param $v la valeur à attribuer, false pour supprimer + */ + public static function _param ($p, $v = false) { + if ($v === false) { + unset ($_SESSION[$p]); + unset (self::$session[$p]); + } else { + $_SESSION[$p] = $v; + self::$session[$p] = $v; + + if($p == 'language') { + // reset pour remettre à jour le fichier de langue à utiliser + Translate::reset (); + } + } + } + + + /** + * Permet d'effacer une session + * @param $force si à false, n'efface pas le paramètre de langue + */ + public static function unset_session ($force = false) { + $language = self::param ('language'); + + session_unset (); + self::$session = array (); + + if (!$force) { + self::_param ('language', $language); + } + } +} |
