Mercoledì 16 Settembre 2009 11:31

Gestire le variabili di sessione con JSession

Rate this item
(0 votes)

Chi programma in PHP è familiare con l'array $_SESSION e con le funzioni per gestire le sessioni... Nello sviluppo di moduli e componenti per Joomla il problema di gestire dati condivisi all'interno della stessa sessione è notevolmente semplificato dalle API messe a disposizione dal framework. In particolare, la classe JSession rappresenta il materiale sul quale possiamo lavorare. Innanzitutto, quindi, quello che dobbiamo fare è istanziare un oggetto JSession

$session = JSession::getInstance('none',array());

In questo modo otteniamo un'istanza di JSession che ci mette a disposizione una nutrita schiera di metodi; è evidente che ciò che ci interessa maggiormento è settare e leggere variabili di sessione... A questo scopo, esistono due metodi molto semplici che assolvono il compito. Per leggere una variabile di sessione utilizziamo get(), i quali parametri indicano rispettivamente il nome della variabile da leggere e il valore di default da porre nel caso questa non sia trovata. Ad esempio:

$bookingid = $session->get('bookingid', -1);

ottiene il valore bookingid dalla sessione, mettendolo a -1 se non lo trova. Invece, se vogliamo settare il valore di una variabile, abbiamo a disposizione set(), al quale passiamo il nome della variabile da impostare e il valore da darle:

$session->set('bookingid', 100);

setta a 100 il valore bookingid della sessione.

Oltre a queste funzionalità di base rimangono da vedere alcuni metodi che possono rivelarsi utili in determinate situazioni:

 

  • clear(), che esegue l'unset di tutti i dati presenti nella sessione;
  • getExpire(), che restituisce i minuti mancanti all'expire della sessione;
  • getId(), che restituisce l'id della sessione.

Per ulteriori dettagli, vi consiglio di vedere la documentazione ufficiale.