마 젠토는 언제 세션을 사용하고 쿠키는 언제 사용합니까?


9

Magento에는 세션 및 쿠키 처리를위한 다음과 같은 핵심 기능이 있습니다.

Mage::getSingleton('core/cookie');
Mage::getSingleton('core/session');

마 젠토는 언제 쿠키를 설정하고 언제 PHP 세션을 설정합니까? 사용 사례는 무엇입니까?

Magento가 장바구니 정보 Mage::getSingleton('checkout/session')와 사용자 상태를 에 저장한다는 것을 알고 있기 때문에 약간 혼란스러워 Mage::getSingleton('customer/session')합니다. 그러나 체크 아웃 세션은 세션이 아닌 쿠키처럼 보입니다. 브라우저를 닫고 페이지를 다시 열면 항목이 여전히 장바구니에 있습니다.

이는 checkout/session모델이 전역 $_SESSION변수가 아닌 쿠키를 설정 한다는 의미 입니까?

답변:


14

아니요, 이는 세션의 ID를 포함하는 쿠키로 세션이 유지됨을 의미합니다. PHP의 유일한 대안은 같은 URL 매개 변수 인 ?SID=d41d8cd98f00b204e9800998ecf8427e경우 d41d8cd98f00b204e9800998ecf8427e세션 ID입니다.

간단히 말해서 세션 데이터 는 서버에 저장되지만 HTTP는 상태 비 저장이므로 올바른 세션을 식별하려면 세션 ID를 가진 쿠키 또는 매개 변수 가 필요합니다.

Magento는 adminhtml백엔드와 frontend프론트 엔드에 대해 두 개의 세션 쿠키를 설정합니다 . 세션 모델은 'checkout/session'데이터를 "네임 스페이스"에 저장합니다 $_SESSION['checkout'].

Magento가 설정 한 세션 관련 쿠키는 예를 들어 store현재 검색 한 상점보기를 기억 하는 쿠키입니다.


0

Mage::getSingleton('checkout/session')Flats테이블 예 에서 선택한 모든 데이터를 저장합니다 . sales_flat_quote sales_flat_quote_address그리고 더.

이것의 의미 : 첫 번째 방문에서 모든 고객 quote_id은 고유하고 다른 quote테이블의 데이터와의 관계를 수신하므로 지속적으로 장바구니를 볼 수 있습니다. 이 데이터는 주문을 마치기 전에 장바구니, 데이터 및 결제 양식의 항목을 변경할 때마다 발생합니다. 주문을 마치면 모든 견적 데이터를 가져 order와서 테이블 ep에 저장 합니다. sales_order_items견적 데이터가 사용 중지 상태가됩니다. 이것은 주문할 때마다 발생합니다.

Mage::getSingleton('customer/session') 로그인 할 때 고객 데이터가 있습니다.


이것이 당신에게 의미가 있기를 바랍니다. 말하면 쉽게 설명 할 수 있습니다. magento가 데이터를 관리하는 방법은 복잡하고 실제로 분산되어 있지만 일단 데이터를 관리하는 방법과 데이터를 조작하는 방법을 이해하면 당신은 그것을 Esasy cake magento했습니다.


최신 정보

이것은 quote_id세션별로 얻는 방법입니다

   $session        = Mage::getSingleton('checkout/session');
   $quote_id       = $session->getQuoteId();

그래서이되는 quote_id세션이나 쿠키에 저장?
Rouzbeh

세션에서. 쿠키는 원격 브라우저에 데이터를 저장하여 재귀 사용자를 추적하거나 식별하는 메커니즘입니다.
Duarte

그것이 내가 이해하지 못하는 것입니다. 브라우저를 닫으면 세션이 만료됩니다. 그러나 Magento quote_id는 브라우저를 다시 열 때 어떻게 카트 항목을 기억 합니까?
Rouzbeh

당신의 세션은 당신의 IP를 저장하고 당신이 돌아올 때 Magento가 그것을 사용하여 당신 quote_id과 당신의 마술 을 얻기 위해 카트를 다시 볼 수 있습니다. 기록 및 기록되지 않은 사용자는 quote_id견적 데이터가 만료되지 않습니다
Duarte

1
좋아, 이것을 확인하십시오. 1) 기록되지 않음 : 장바구니에 3 개의 제품을 추가 한 후 sales_flat_quote쿠키 및 캐시를 제거하면 데이터가 저장 됩니다. 데이터가 손실되고 장바구니가 비게됩니다. 따라서 로그되지 않은 사용자는 토큰이 쿠키 및 캐시를 기반으로합니다. 2) 로그인 : 장바구니에 동일한 3 개의 제품이 있으며 브라우저 쿠키 및 캐시를 지 웁니다. 로그 아웃되지만 3 개의 제품에 로그인하면 여전히 로그인 할 수 있습니다. 이 모든 마법은 다음에 의해 관리됩니다quote
Duarte
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.