Extensions

Le sessioni di Joomla

La sessione è un meccanismo fornito da PHP che permette di memorizzare dei dati che hanno una durata temporanea, fino alla fine della visita dell'utente al nostro sito. Questo significa che alla prima pagina che il nostro utente visita possiamo assegnare un valore ad una variabile e questo valore è disponibile per tutte le pagine visitate successivamente.

In uno script PHP qualsiasi, la sessione viene gestita attraverso l'uso della variabile $_SESSION.

Il framework di Joomla ci permette di avere un approccio di più alto livello utilizzando un oggetto globale, ottenuto tramite la classe JFactory:

$session =& JFactory::getSession();

Questo oggetto memorizza i dati dividendoli in namespace. Il namespace di default si chiama appunto 'default', per cui l'istruzione

$valore = $session->get('prova');

restituisce il valore della variabile default.prova.

I valori vengono impostati tramite il metodo set, per cui

$session->set('prova', 1, 'miaestensione');

memorizza nella variabile miaestensione.prova il valore 1.

Per recuperare il valore di tale variabile, usiamo il metodo get specificando però anche il namespace di riferimento:

$valore = $session->get('prova', 0, 'miaestensione');

dove 0 è il valore da assegnare per default in caso non sia stato settata la variabile prova.

Le sessioni sono un metodo facile per scambiare dati all'interno della sessione utente (che tra parentesi non è in alcun modo correlata al login degli utenti, ovvero abbiamo una sessione per ciascun visitatore del nostro sito a prescindere dal fatto che abbia o meno effettuato il login al sito).

La loro limitazione è relativa al fatto che non possiamo memorizzare strutture dati complesse, ma solo variabili. Se abbiamo necessità di memorizzare dati più articolati, possiamo utilizzare la classe JRegistry, di cui parlerò in un prossimo post.


Corso Joomla