Was ist der Unterschied zwischen den verschiedenen Magento session-Typen
Ich auf der Suche nach einigen Informationen über den Unterschied der verschiedenen session-Typen in Magento.
Gibt es eine core-session, ein Kunde Sitzung und eine checkout-session. Aber ich bin mir nicht ganz sicher, Wann welche und wie könnten Sie sich anders Verhalten. Sind Sie alle gültig, für die gleiche Zeit oder eine checkout-Sitzung erhalten, für ungültig erklärt früher, als die core-session?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Große Frage!
Antwort auf die Frage direkt: Alle session-Modellen Lebensdauer sind die gleichen. Für die Lebensdauer der Sitzung wird bestimmt durch die Konfiguration in Magento und in Ihre server-software. , Was Sie wohl beabsichtigen zu Fragen (in der Magento Umgang mit verschiedenen Sitzungen), "Wie lange werden die Daten für eine bestimmte Sitzung geben Sie beibehalten?"
Die Antwort ist eine Umsetzung, so dass der beste Weg ist, suchen Sie den code für die Instanziierung Punkte. Die Suche Muster zu verwenden ist getSingleton('core/session') (oder welche session-Modell). Überall, wo diese genannt wird - wenn es das erste mal ist es aufgetreten - die Sitzung namespace (siehe unten) in der
$_SESSION
superglobale.So, die sessions sind nie "getötet", aber die Daten wird gelöscht, abhängig von der Implementierung. Derjenige, der dies tut notorisch ist
checkout/session
ist, da die Daten bekommt, wischte sich nach einer Bestellung.Darüber hinaus können Sie sich darauf verlassen, dass die Sitzung gibt es für Ihre Beharrlichkeit braucht.
Session-models in Magento verwenden Sie eine abstrakte Basisklasse definieren eine API von Arten, die
Mage_Core_Model_Session_Abstract
. Diese Klasse füllt die folgenden Rollen/Funktionen:init()
Methode, buchstäblich die Trennung der gespeicherten Werte für jeden Typ, unter$_SESSION[$namespace]
addError()
,addMessage()
,addNotice()
, undaddSuccess()
)Varien_Object::__call()
. *Beachten Sie, dass die Sitzungen haben eine modifizierte magic getter-das ermöglicht das abrufen einer Bezugs-aus der Sitzung und unset es mit einem Anruf (z.B.$session->getSomeParam(true)
)Also, wenn Sie möchten, dass Ihre module haben Ihren eigenen Namensraum der session, deklarieren Sie einfach eine session-Modell als Erweiterung aus der session, abstract und in den geschützten
_construct()
nennen$this->init('namespace')
.Alle Daten für session Modelle wird im array-Schlüssel unter den Namensraum der session; für den Kern wäre dies:
dargestellt werden können, als