- lmbSessionStorage — интерфейс для хранителей данных сессии.
- lmbSessionDbStorage — хранитель сессии в базе данных.
- lmbSession — класс для работы с сессионными данными. Классы приложений, построенных на базе Limb не должны работать с глобальной переменной $_SESSION, только через класс lmbSession.
- lmbSessionNativeStorage — базовый драйвер хранилища сессионных данных на основе PHP-файлов. По сути, это простая заглушка.
- lmbSessionDBStorage — драйвер хранилища сессионных данных на основе таблицы базы данных.
Порядок работы с пакетом SESSION таков:
- Создается объект lmbSession.
- Создается объект, реализующий интерфейс lmbSessionStorage, например, lmbSessionDbStorage.
- Вызывается инстанс-метод lmbSession :: start($storage = null), куда передается драйвер хранилища сессионных данных. Если драйвер не передается - используется обычный для PHP способ хранения сессионных данных в файлах.
- Далее объект сессии используется глобально или каким-либо еще способом передается клиентам.
Пакет SESSION используется пакетом WEB_APP. см. раздел Работа с сессий в пакете WEB_APP.
lmbSessionDbStorage — класс, который позволяет хранить сессионные данные в базе данных. Так как lmbSessionDbStorage работает с базой данных, при использовании этого драйвера сессии, появляется зависимость от пакета DBAL.
SQL-код структуры таблицы, где хранятся сессионные данные показан ниже:
CREATE TABLE `lmb_session` (
`session_id` VARCHAR(50) NOT NULL DEFAULT '',
`session_data` BLOB NOT NULL,
`last_activity_time` BIGINT(11) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
lmbSessionDbStorage в методе installStorage() регистрирует в качестве обработчиков сессионных сообщений свои методы, такие как sessionStart(), sessionRead(), sessionWrite() и т.д.
lmbSessionNativeStorage — класс, который используется, если вы желаете использовать стандартную функциональность PHP по хранению сессионных данных в файлах. По сути lmbSessionNativeStorage - это заглушка.