Passa ai contenuti principali

Magento e la gestione delle variabili di sessione


Le sessioni di Magento sono di tre tipi:
Core Session:- Mage::getSingleton(‘core/session’)
Customer Session:- Mage::getSingleton(‘customer/session’)
Admin Session:- Mage::getSingleton(‘adminhtml/session’)
Supponiamo di voler settare la variabile di sessione: testing_magento.
Si  imposta direttamente con il metodo anche se non esiste:
Mage::getSingleton(‘core/session’)->setTestingMagento(‘hello’);  
Recuperare nello stesso modo:
$test = Mage::getSingleton(‘core/session’)->getTestingMagento();
Ed eliminare
Mage::getSingleton(‘core/session’)->setTestingMagento();
Eventualmente è possibile impostare, recuperare, testate e cancellare la variabile di sessione con:
  • setData('<nome variabile>', <valore>)
  • getData('<nome variabile>', <valore>)
  • hasData('<nome variabile>') --> boolean
  • unsetData('<nome variabile>')
  • unsetOldData('<nome variabile>')  <-- mai usato

Come fa Magento a determinare il nome del metodo set e get da 'testing_magento', ossia da Mage::getSingleton(‘core/session’)->setData( 'testing_magento',‘hello’)  a  Mage::getSingleton(‘core/session’)->setTestingMagento(‘hello’)?
File: Varien/Object.php
1° step chiamata al magic method __call(.....)
2° step chiamata a _underscore
/**
* Converts field names for setters and geters
*
* $this->setMyField($value) === $this->setData('my_field', $value)
* Uses cache to eliminate unneccessary preg_replace
*
* @param string $name
* @return string
*/
protected function _underscore($name)
{

  if (isset(self::$_underscoreCache[$name])) {
     return self::$_underscoreCache[$name];
  }

  $result = strtolower(preg_replace('/(.)([A-Z])/', "$1_$2", $name));

  self::$_underscoreCache[$name] = $result;
  return $result;
}

Commenti

Post popolari in questo blog

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Ubuntu: La propria installazione di python è danneggiata. Correggere il collegamento simbolico «/usr/bin/python».

Questa è un problema, soprattutto se si vuole aggiornare la distribuzione.+ Dì la verità: hai pacioccato con le versioni di python vero? Volevi usare la 3.5 e non 2.7 e così hai aggiunto alternatives o manipolato il symlink. No? io si. Così in fase di aggiornamento mi sono bloccato. Allora per risolverlo ecco la soluzione: elimina tuttle le eventuali alternative : sudo update-alternatives –remove-all python crea il symlink alla 2.7 sudo ln -s /usr/bin/python3.5 /usr/bin/python aggiorna i permessi: sudo chmod 7777 /usr/bin/python Ora funziona tutto. La soluzione l’ho scovata qui: https://askubuntu.com/questions/448926/do-release-upgrade-python-install-is-corrupted