Singleton pattern in Magento

Per semplificare non è altro che una classe con unica istanza accessibile da una qualsiasi posizione. In Magento, questo si basa sull’utilizzo del pattern Registry, descritto qui, ed è usato ad esempio per gestire le sessioni sia lato frontend che backend.

Ad esempio, se volessimo verificare che un cliente sia loggato sul frontend, useremo l’istruzione

Mage::getSingleton('customer/session')->isLoggedIn()

e in caso affermativo possiamo caricare i suoi dati tramite

$customer = Mage::getSingleton('customer/session')->getCustomer()

Se invece fossimo nel backend, cambia la classe che gestisce le sessione e di conseguenza cambia il parametro da passare

$user = Mage::getSingleton('admin/session')->getUser()

Altro esempio è quello delle variabili di sessione. Con setData e getData possiamo rispettivamente settare e caricare una variabile personalizzata.

Mage::getSingleton('core/session')->setData('my_var', 'test')
Mage::getSingleton('core/session')->getData('my_var')

Lascia un commento