2014-10-14 4 views

Antwort

12

Die Magento-Registrierung wird nicht beibehalten, da, wenn Sie sich auf einer neuen Seite befinden, diese Registrierungsvariablen immer noch nicht angezeigt werden. Ich verwende hauptsächlich die Registrierung, um zwischen Controllern und Blöcken zu kommunizieren.

Die Sitzung wird fortbestehen, aber Sie wissen, dass es mehrere Namensräume für Sitzungen in Magento gibt, die zu bestimmten Zeiten gelöscht werden, z. B. die checkout/session wird gelöscht, nachdem die Bestellung aufgegeben wurde. Es empfiehlt sich, einen eigenen Namespace für Ihre Sitzung zu erstellen, um Konflikte wie doppelte Variablen zu vermeiden oder sie zur falschen Zeit zu löschen.

Wie immer Alan Sturm hat einige gute Dinge zu diesem Thema zu lesen:

http://alanstorm.com/magento_registry_singleton_tutorial

How to use Session in Magento

-2

Mage :: registry() impliziert die Erstellung neuer globaler Variablen, auf die überall in Ihrem Magento-Shop zugegriffen werden kann.

Da es sich um eine statische Funktion handelt, kann die Magento-Registry direkt aufgerufen werden, ohne dass das Objekt wie bei dynamischen Funktionen instanziiert wird.

Magento Registrierung kann wie ClassName :: StaticFunctionName() aufgerufen werden.

während Mage :: getSingleton() ist wie Session in PHP.

Ich hoffe, ich könnte meinen Standpunkt erläutern.

2

Verwendung Mage :: Registry(), wenn Sie Variable in der gleichen Seite Anfrage zugreifen möchten (z. B. Übergabe der Variablen vom Controller zur Vorlage)

Verwenden Sie die Sitzung, wenn Sie auf Variablen über VERSCHIEDENE Seitenanforderungen zugreifen möchten (z. B. Navigieren von einer Seite zu einer anderen)

Verwandte Themen