JeuWeb (JeuPHP) - Crée ton jeu par navigateur

Version complète : [POO] Utiliser la ram pour stocker des données volatiles.
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonjour à tous,
Voici un petit tuto pour vous présenter un système de cache bien utile que j'utilise notamment sur http://www.adelian.net

A quoi ça sert ?
Ça sert simplement à stocker des variables, que ce soit objet, tableau ou objets, dans la ram du serveur pendant un certains temps.
On peut comparer ça à un système de session, mais partagé.

Comment ça marche ?
Et bien d'abord il vous faut une classe pour s'interface avec le démon memcached. Si il n'est pas installé sur votre machin, un simple
apt-get install memcached php5-memcache suffit.
Voici la classe en question :
Code PHP :
<?php
<?php

class Cache extends Memcache 
{
    private static 
$_cache;
    public static 
$cache_server;
    public static 
$cache_port;

    
// --------------------------------------------------------------
    
public function __construct() { 
    
// --------------------------------------------------------------
        
self::$cache_server     "localhost":
        
self::$cache_port         "11211";
    }

    
// --------------------------------------------------------------
    
public function __destruct() { 
    
// --------------------------------------------------------------
        
if (!empty(self::$_cache)) self::$_cache->close();
    }
    
    
// --------------------------------------------------------------
    
public function get($key) { 
    
// --------------------------------------------------------------    
        
return self::getConnexion()->get($key);    
    }
    
    
// --------------------------------------------------------------
    
public function set($key,$donnee,$delay=0) {
    
// --------------------------------------------------------------
        
return self::getConnexion()->set($key,$donnee,false,$delay);    
    }

    
// --------------------------------------------------------------
    
static function getConnexion()
    
// --------------------------------------------------------------
    
{
        if (empty(
self::$_cache)) 
        {
            
self::$_cache = new Memcache();
            
self::$_cache->connect(self::$cache_server,self::$cache_port);
        }
        return 
self::$_cache;
    }
        
}

?>

Une fois cette classe créer, vous utiliser le système comme ceci :
Code PHP :
$oCache Cache::getConnexion(); // récupération d'une instance de la classe
$array = array('toto','titi','tata'); // tableau d'exemple prêt à être mis en cache
$oCache->set('tableau',$array,0); // mise en cache du tableau avec comme clé "tableau" et comme durée 0 (infini)
// pour récuperer le tableau plus tard, rien de plus simple
$array $oCache->get('tableau'); 

Quel intérêt ?
Cette classe peut être utile par exemple pour savoir en direct le nombre de gens en ligne (et d'autres détails) sans accèder à votre base de données, elle peut également mettre en cache vos requêtes sql, ou par exemple lister les gens en ligne à un endroit donné sur une carte.
Les possibilités sont énormes 2

Voila merci de m'avoir suivi,
Je suis dispo pour tout question (bien que ça soit assez simple)
URLs de référence