Подтвердить что ты не робот

Какая разница между различными типами сеансов Magento

Я искал некоторую информацию о различии различных типов сеансов, доступных в Magento.

Здесь есть основной сеанс, сеанс клиента и сеанс проверки. Но я не совсем уверен, когда использовать какой и как они могут вести себя по-другому. Все ли они действительны в одно и то же время или сеанс проверки становится недействительным раньше, чем основной сеанс?

4b9b3361

Ответ 1

Отличный вопрос!

Чтобы ответить на вопрос напрямую: все время жизни сеансов одинаково. Срок службы сеанса определяется настройкой в ​​Magento и в вашем серверном программном обеспечении. То, что вы, вероятно, собираетесь задать (в способе Magento для обработки различных сеансов): "Как долго сохраняются данные для определенного типа сеанса?"

Ответ является одним из вариантов реализации, поэтому наилучшим способом является поиск кода для точек создания. Используемый шаблон поиска - getSingleton ('core/session') (или любая модель сеанса). В любом случае, если это вызвано - если он впервые встречается, - создаст пространство имен сеанса (объяснено ниже) в супергалоне $_SESSION.

Итак, сеансы никогда не "убиты", но данные очищаются в зависимости от реализации. Тот, который делает это, как известно, checkout/session, поскольку данные стираются после размещения заказа.

Помимо этого, вы можете полагаться на то, что этот сеанс существует для ваших потребностей в персистентности.

Модели сеансов в Magento используют абстрактный базовый класс для определения API-типов, Mage_Core_Model_Session_Abstract. Этот класс заполняет следующие роли/функции:

  • Распределение имен сеансов с помощью метода init(), буквально разделяющего сохраненные значения для каждого типа в $_SESSION[$namespace]
  • Getters для подключения к настройкам конфигурации, связанным с сеансом (включая время жизни файлов cookie, SID, параметры безопасности и т.д.).
  • Сохранение и извлечение флеш-сообщений (addError(), addMessage(), addNotice() и addSuccess())
  • Getter для конфигурации и методов хранения сеанса.
  • Перегрузка (магические геттеры и сеттеры) для установки параметров по желанию через Varien_Object::__call(). * Обратите внимание, что сеансы имеют модифицированный магический приемник, который позволяет извлекать нулевую точку из сеанса и отключать ее одним вызовом (например, $session->getSomeParam(true))

Итак, если вы хотите, чтобы ваш модуль имел собственное пространство имен сеанса, просто объявите модель сеанса как продолжение от абстрактного сеанса и в защищенном вызове _construct() $this->init('namespace').

Все данные для моделей сеанса будут установлены в ключах массива в пространстве имен сеанса; для ядра это будет:

$session = Mage::getSingleton('core/session')->setSomeValue('Some string');

может быть представлен как

$_SESSION['core']['some_value'] = 'Some string'