Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[POO] Gestionnaire de sessions objet
Auteur Message
Studio Gamboo Hors ligne
Membre

Messages : 78
Inscription : Jun 2007
Réputation : 4
Message : #1
[POO] Gestionnaire de sessions objet
Bonjour tout le monde.
Voici un petit tuto qui va vous apprendre à utiliser une classe de gestion de session maison.
Pour la réaliser, je me suis d'un part inspiré (énormément!) du travail de Roworll dans ce topic pour l'échange de session.
Il est à noter également que la classe implémente le pattern "Registry".

Alors, à quoi ça sert ?
Alors cette classe permet de gérer le tableau de session comme un objet. Si votre site est développé tout en objet, cela permet une certaine homogénéité.
De plus elle contient une méthode qui lui permet d'utiliser les sessions d'autres clients, ce qui est assez intéressant.

La classe
Voici donc la classe en question :
Code PHP :
<?php
class Session
{
    private 
$sessionid;
    private 
$session;

    
// --------------------------------------------------------------
    
public function __construct() { 
    
// --------------------------------------------------------------
        
session_start();
        
$this->sessionid session_id();
    }

    
// --------------------------------------------------------------
    
public function __set($key,$value) { 
    
// --------------------------------------------------------------
        
$_SESSION[$key] = $value;
    }

    
// --------------------------------------------------------------
    
public function __get($key) { 
    
// --------------------------------------------------------------
        
if(isset($_SESSION[$key])) return $_SESSION[$key];
        else return 
false;
    }

    
// --------------------------------------------------------------
    
public function __isset($key) { 
    
// --------------------------------------------------------------
        
if(isset($_SESSION[$key])) return true;
        else return 
false;
    } 

    
// --------------------------------------------------------------
    
public function __unset($key) { 
    
// --------------------------------------------------------------
        
if(isset($_SESSION[$key])) unset($_SESSION[$key]);
    }  
    
    
// --------------------------------------------------------------
    
public function destroy() { 
    
// --------------------------------------------------------------
        
session_unset();
        
session_destroy();
    } 

    
// --------------------------------------------------------------
    
public function loadSession($id) { 
    
// --------------------------------------------------------------
        
if(!empty($id) && file_exists(session_save_path().'sess_'.$id))
        {
            
session_write_close();
            
session_id($id);
            
session_start();
        }
    }

    
// --------------------------------------------------------------
    
public function getSessionBack() { 
    
// --------------------------------------------------------------
        
session_write_close();
        
session_id($this->sessionid);
        
session_start();
    }
      
}

?>

Comment l'utiliser ?
Alors voici un exemple simple des capacités de la classe :
Code PHP :
// D'abord il faut instancier un objet de la classe. Cela à pour effet de lancer la session.
$oSession = new Session();
// Ensuite, stockons quelque chose en session, une chaine par exemple
$oSession->chaine "coucou"// $_SESSION['chaine'] vaut maintenant "coucou";
// Pour l'afficher, rien de plus simple
echo $oSession->chaine

Je veux charger une autre session !
Avec cette classe vous pouvez simplement charger le tableaux de session d'un autre joueur. Il suffit pour cela de connaitre son id de session (vous pouvez l'enregistrer dans la base par exemple).
Voici comment procéder :
Code PHP :
// On lance donc d'abord la session
$oSession = new Session();
// Maintenant on charge la session de quelqu'un d'autre
$oSession->loadSession("afrfgerf49erfe5f4erf84");
// On peut maintenant modifier en direct sa session
$oSession->chaine "coucou, un message pour toi";
// Et reprendre tranquillement la session du joueur en cours
$oSession->getSessionBack(); 
Et voila !
Merci de m'avoir suivi, j'attend vos retours 2

http://www.studio-gamboo.com
http://www.adelian.net
02-29-2008 04:29 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
naholyr Hors ligne
Membre

Messages : 861
Inscription : Aug 2006
Réputation : 18
Message : #2
RE: [POO] Gestionnaire de sessions objet
L'aide pour ce tutorial est disponible à cette adresse

Ressources [PHP][MySQL][[Image: fav.png]prototype.js]
Projet Dei - Le jeu [Statut=Conception]
[Image: 2344.png]
naholyr@jabber.fr
03-03-2008 12:07 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse 



ContactJeuWeb (JeuPHP) - Crée ton jeu par navigateurRetourner en hautRetourner au contenuVersion bas-débit (Archivé)Syndication RSS