Отличный вопрос!
Чтобы ответить на вопрос напрямую: Время жизни всех моделей сессий одинаково. Время жизни сессии определяется конфигурацией в Magento и в программном обеспечении вашего сервера. То, что вы, вероятно, намереваетесь спросить (в способе обработки различных сеансов Magento): «Как долго сохраняются данные для данного типа сеанса?»
Ответ один из следующих:реализации, поэтому лучший способ - поиск кода для точек создания экземпляров.Используемым шаблоном поиска является getSingleton («ядро / сессия») (или любая модель сеанса).Везде, где это вызывается, - если это происходит впервые - создаст пространство имен сеансов (объяснено ниже) в $_SESSION
суперглобальном.
Таким образом, сеансы никогда не "убиваются", но данные очищаютсяв зависимости от реализации.Тот, кто делает это, как известно, checkout/session
, так как данные стираются после размещения заказа.
Помимо этого, вы можете полагать, что сеанс существует для ваших постоянных потребностей.
Сессиямодели в Magento используют абстрактный базовый класс для определения своего рода API, Mage_Core_Model_Session_Abstract
.Этот класс выполняет следующие роли / функции:
- Пространство имен сеанса с помощью метода
init()
, буквально разделяющее сохраненные значения для каждого типа в $_SESSION[$namespace]
- Получатели для (подключение к)параметры конфигурации, связанные с сеансом (включая срок действия файлов cookie, SID, параметры безопасности и т. д.)
- Хранение и извлечение флэш-сообщений (
addError()
, addMessage()
, addNotice()
и addSuccess()
) - Получатель для конфигурации и методов хранения сеансов
- Перегрузка (магические получатели и установщики) для установки параметров по желанию через
Varien_Object::__call()
.* Обратите внимание, что у сеансов есть модифицированный магический метод получения, который позволяет вам извлекать данные из сеанса и сбрасывать их одним вызовом (например, $session->getSomeParam(true)
)
Итак, если вы хотите, чтобы ваш модуль имел свой собственныйПространство имен сеанса, просто объявите модель сеанса как выходящую из аннотации сеанса и в защищенном _construct()
вызове $this->init('namespace')
.
Все данные для моделей сеанса будут установлены в ключах массива в пространстве имен сеанса;для ядра это будет:
$session = Mage::getSingleton('core/session')->setSomeValue('Some string');
может быть представлено как
$_SESSION['core']['some_value'] = 'Some string'