Naprawdę mam wątpliwości, kiedy używać Mage :: register() i maga sesji.Różnica między Magiem :: rejestru() i sesją w Magento
Czy ktoś może zasugerować różnicę między nimi a czasem użycia.
Naprawdę mam wątpliwości, kiedy używać Mage :: register() i maga sesji.Różnica między Magiem :: rejestru() i sesją w Magento
Czy ktoś może zasugerować różnicę między nimi a czasem użycia.
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:
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.
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)