Created
March 15, 2010 10:58
-
-
Save dandelionmood/332733 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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