PHP: creare una classe per gestire le sessioni
Possiamo prendere spunto dal web storage in JavaScript per implementare una classe PHP per gestire le sessioni.
Possiamo prendere spunto dal web storage in JavaScript per implementare una classe PHP per gestire le sessioni.
La classe potrebbe essere la seguente:
class SessionStorage {
public $id; // ID univoco
public $length; // Numero di elementi
protected $_token = 'w9:FS)NU_Q>N{9{+dU>prHfZ';
public function __construct() {
$this->id = md5( $_SERVER['HTTP_USER_AGENT'] . $this->_token );
$this->length = 0;
}
public function initialize() { // Crea la sessione
session_start();
$_SESSION['data'] = array();
$_SESSION['id'] = $this->id;
}
public function setItem( $key, $value ) {
$_SESSION['data'][$key] = $value; // Imposta una chiave e un valore
$this->_setLength(); // Aggiorna il numero di elementi
}
public function removeItem( $key ) {
unset( $_SESSION['data'][$key] ); // Rimuove una chiave
$this->_setLength();
}
public function clear() { // Elimina la sessione e i dati
session_destroy();
$_SESSION = array();
$this->length = 0;
$this->id = '';
}
public function hasItem( $key ) { // Verifica che una chiave sia presente
if( array_key_exists( $key, $_SESSION['data'] ) ) {
return true;
} else {
return false;
}
}
private function _setLength() {
$this->length = count( $_SESSION['data'] );
}
}
Esempio d'uso:
require_once( 'SessionStorage.php' );
$session = new SessionStorage();
$session->initialize();
$session->setItem( 'test', 1 );
Commenti