2014-10-14 26 views

Odpowiedz

12

Rejestr Magento nie jest utrzymywany, ponieważ po przejściu na nową stronę nie zobaczysz jeszcze ustawionych zmiennych rejestru. Używam głównie rejestru do komunikacji między kontrolerami i blokami.

Sesja będzie trwała, ale wiadomo, że istnieje wiele przestrzeni nazw dla sesji w Magento, i będą one usuwane w określonych momentach, takich jak checkout/session, które są usuwane po złożeniu zamówienia. Najlepiej tworzyć własne przestrzenie nazw w sesji, aby uniknąć konfliktów, takich jak zduplikowane zmienne lub czyszczenie ich w niewłaściwym czasie.

Jak zawsze Alan Burza ma kilka dobrych rzeczy do czytania na ten temat:

http://alanstorm.com/magento_registry_singleton_tutorial

How to use Session in Magento

-2

Mage :: registry() oznacza tworzenie nowych zmiennych globalnych, do których można uzyskać dostęp w dowolnym miejscu w swoim sklepie Magento.

Będąc statyczną funkcją, rejestr Magento można wywołać bezpośrednio, bez tworzenia obiektu, jak w przypadku funkcji dynamicznych.

Rejestr Magento można nazwać jak ClassName :: StaticFunctionName().

natomiast Mage :: getSingleton() jest jak sesja w PHP.

Mam nadzieję, że mógłbym wyjaśnić mój punkt widzenia.

2

Zastosowanie Mage :: rejestru(), gdy chcesz uzyskać dostęp do zmiennej w żądaniu strony SAME (np. przekazanie zmiennej z kontrolera do szablonu)

Skorzystaj z sesji, gdy chcesz uzyskać dostęp do zmiennych w RÓŻNYCH żądaniach stron (np. nawigacja z jednej strony do drugiej)