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();