Session
Note
Pour toutes les fonctionnalités Http, Ubiquity utilise des classes techniques contenant des méthodes statiques. C’est un choix de conception pour éviter l’injection de dépendances qui dégraderait les performances.
La classe USession fournit des fonctionnalités supplémentaires pour manipuler plus facilement le tableau natif $_SESSION de php.
Démarrer la session
La session Http est lancée automatiquement si la clé sessionName est renseignée dans le fichier de configuration app/config.php :
<?php
return array(
...
"sessionName"=>"key-for-app",
...
);
Si la clé sessionName n’est pas renseignée, il est nécessaire de démarrer la session explicitement pour l’utiliser :
use Ubiquity\utils\http\USession;
...
USession::start("key-for-app");
Note
Le paramètre name est facultatif mais recommandé pour éviter les conflits de variables.
Création ou modification d’une variable de session
use Ubiquity\utils\http\USession;
USession::set("name","SMITH");
USession::set("activeUser",$user);
Récupération de données
La méthode get renvoie la valeur null si la clé name n’existe pas dans les variables de session.
use Ubiquity\utils\http\USession;
$name=USession::get("name");
La méthode get peut être appelée avec le second paramètre facultatif qui renvoie une valeur si la clé n’existe pas dans les variables de session.
$name=USession::get("page",1);
Note
La méthode session est un alias de la méthode get.
La méthode getAll renvoie toutes les variables de la session :
$sessionVars=USession::getAll();
Test
La méthode exists teste l’existence d’une variable en session.
if(USession::exists("name")){
//do something when name key exists in session
}
La méthode isStarted vérifie que la session est démarrée.
if(USession::isStarted()){
//do something if the session is started
}
Suppression de variables
La méthode delete permet de supprimer une variable de session :
USession::delete("name");
Clôture explicite de la session
La méthode terminate ferme correctement la session et supprime toutes les variables de session créées :
USession::terminate();