Skip to content

Instantly share code, notes, and snippets.

@dandelionmood
Created March 15, 2010 10:58
Show Gist options
  • Save dandelionmood/332733 to your computer and use it in GitHub Desktop.
Save dandelionmood/332733 to your computer and use it in GitHub Desktop.
<?php
class SessionMemcached
{
// Cette variable contiendra l'instance de memcache.
private $memcache;
// Celle là contiendra l'identifiant unique de la session.
private $token_session;
// Ce tableau contiendra les données de session
private $donnees_session = array();
public function __construct($token_session)
{
// Initialisation du client Memcache
$this->memcache = new Memcache;
// Ajoutez ici autant de serveurs que vous le souhaitez pour héberger
// les sessions, le port par défaut est 11211.
$this->memcache->addServer('localhost', 11211);
// Le token de session défini précédement a été mis lu depuis le cookie.
$this->token_session = $token_session;
// Lecture de la session si elle existait :
$r = $this->memcache->get($this->token_session);
if ( $r !== false )
{
$this->donnees_session = $r;
}
}
// Lecture dans la session
public function lire($cle)
{
if(isset($this->donnees_session[$cle]))
{
return $this->donnees_session[$cle];
}
else
{
return null;
}
}
// Écriture dans la session
public function ecrire($cle, $valeur)
{
$this->donnees_session[$cle] = $valeur;
}
private function __destruct()
{
// A la fin de l'utilisation de la classe, on stocke les données
// dans la session et on ferme l'instance de Memcache.
$this->memcache->set($this->token_session, $this->donnees_session);
$this->memcache->close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment