Documentation
Sessions
- Migration : Comment passer de Temma 1.x à la version 2
- Installation : Télécharger Temma et l'installer pour démarrer votre projet Web
- Configuration : Toutes les directives de configuration du fichier etc/temma.json et les variables d'environnement utilisables en option
- Routage : Le système de routage par défaut de Temma, et le routage avancé
- Log : Utilisation du système de log, gestion par niveaux de criticité
- Contrôleurs : Pièces essentiels de votre application Web
- Vues : Templates Smarty ou exports JSON/CSV/RSS/iCal/INI
- Injection de dépendances : La colonne vertébrale de vos développements applicatifs
- Sessions : Extension des sessions utilisateurs gérées par PHP
- Cache : Pour ne pas refaire les mêmes calculs plusieurs fois
- Modèle : Comment utiliser les DAO pour accéder aux bases de données
- Plugins : Comment créer vos propres plugins, et une liste de plugins proposés par Temma
- Flux d'exécution : Comment gérer le flux d'exécution, entre les plugins et le contrôleur
- Helpers : Objets proposés par Temma pour vous aider dans plusieurs circonstances
Présentation
Le système de session permet de stocker temporairement des variables, qui sont liées à un visiteur. L'intérêt est
de faire des traitements dans un contrôleur en fonction des traitements effectuée précédemment dans les contrôleurs
exécutés préalablement.
Chaque session est liée à un navigateur par le biais d'un cookie déposé au premier accès. Cela est transparent car
géré par le framework.
L'objet de gestion des sessions est créé automatiquement par Temma, si la configuration le prévoit.
Dans les contrôleurs, l'objet de session est disponible en écrivant :
$this->_session
Dans les autres objets gérés par le composant d'injection de dépendances, l'objet de session est accessible en écrivant :
$this->_loader->session
Lecture de données
Pour lire des données depuis la session, il suffit d'utiliser l'objet comme un tableau associatif :
$currentUser = $this->_session['user'];
Pour savoir si une variable de session existe, ou si elle est vide :
// est-ce que la variable est définie ?
if (isset($this->_session['myVariable']))
doSomething();
// est-ce que la variable est vide ?
if (empty($this->_session['myOtherVariable']))
doSomethingElse();
// variable non définie : utilisation d'une valeur par défaut
$var = $this->_session['myVariable'] ?? 'defaultValue';
// variable non définie ou vide : valeur par défaut
$var = $this->_session['myVariable'] ?: 'defaultValue';
Il est possible de récupérer toutes les variables de session avec la méthode getAll() :
$sessVariables = $this->_session->getAll();
$currentUser = $sessVariables['user'];
$basket = $sessVariables['basket'];
Écriture de données
Pour créer ou modifier une variable de session :
$this->_session['myVariable'] = $value;
Si la valeur assignée à la variable vaut null, la variable est effacée de la session.
Pour lire et écrire des données, l'objet de gestion des sessions s'utilise comme un tableau. Mais cela ne permet
pas d'écrire directement des valeurs sur des tableaux multi-dimensionnels.
Pour modifier un tableau multi-dimensionnel, il faut donc commencer par récupérer le tableau complet, le modifier,
puis écraser la variable de session :
// cela ne fonctionne pas
$this->_session['user']['name'] = 'Einstein';
// il faut procéder ainsi
$user = $this->_session['user'];
$user['name'] = 'Einstein';
$this->_session['user'] = $user;
Effacement de données
Pour détruire une variable de session :
unset($this->_session['myVariable']);
Pour effacer toutes les variables de la session :
$this->_session->clean();
Précédent : | Injection de dépendances |
Suivant : | Cache |
Table des matières
- Migration : Comment passer de Temma 1.x à la version 2
- Installation : Télécharger Temma et l'installer pour démarrer votre projet Web
- Configuration : Toutes les directives de configuration du fichier etc/temma.json et les variables d'environnement utilisables en option
- Routage : Le système de routage par défaut de Temma, et le routage avancé
- Log : Utilisation du système de log, gestion par niveaux de criticité
- Contrôleurs : Pièces essentiels de votre application Web
- Vues : Templates Smarty ou exports JSON/CSV/RSS/iCal/INI
- Injection de dépendances : La colonne vertébrale de vos développements applicatifs
- Sessions : Extension des sessions utilisateurs gérées par PHP
- Cache : Pour ne pas refaire les mêmes calculs plusieurs fois
- Modèle : Comment utiliser les DAO pour accéder aux bases de données
- Plugins : Comment créer vos propres plugins, et une liste de plugins proposés par Temma
- Flux d'exécution : Comment gérer le flux d'exécution, entre les plugins et le contrôleur
- Helpers : Objets proposés par Temma pour vous aider dans plusieurs circonstances