Ajouter, afficher et supprimer une variable de session

  • De le 07 octobre 2009
  • Difficulté : 2/4

Ajouter, afficher et supprimer une variable de session Il peut être utile lors du développement d'un module de stocker puis récupérer une variable de session. La gestion des variables de session est grandement simplifiée grâce aux méthodes magiques de PHP.

Pour stocker ou récupérer une variable de session nous pourrions utiliser les méthodes getData et setData de la classe Mage_Core_Model_Session_Abstract_Varien :

Stocker puis afficher une variable de session

$session = Mage::getSingleton('core/session');

$session->setData('variable','valeur');

echo $session->getData('variable');

Mais si l'on regarde d'un peu plus près, on constate que Magento utilise la méthode spéciale _call (héritée de Varien_Object) pour gérer l'appel des méthodes qui n'existent pas et ainsi permettre de manipuler facilement les données :

lib/Varien/Object.php

public function __call($method, $args)
 {
     switch (substr($method, 0, 3)) {
         case 'get' :
             //Varien_Profiler::start('GETTER: '.get_class($this).'::'.$method);
             $key = $this->_underscore(substr($method,3));
             $data = $this->getData($key, isset($args[0]) ? $args[0] : null);
             //Varien_Profiler::stop('GETTER: '.get_class($this).'::'.$method);
             return $data;

             /* ... */
}

Nous pouvons donc utiliser la méthode getMavariable pour afficher le contenu de la variable nommée mavariable stockée en session. La méthode spéciale _call interprète ici les méthodes de type get, set, uns et has.

Gérer les variables de session

$session = Mage::getSingleton('core/session');

$session->setVariable('test');

if($session->hasVariable()) echo $session->getVariable();

$session->unsVariable();
commentaires

Commentez cet article : Ajouter, afficher et supprimer une variable de session