Сегодня мы рассмотрим основные моменты работы с сессиями в kohana 3.3.x.
Сессии как в php так и в Kohana используются для хранения данных веб-приложения или проще говоря скрипта. Под хранения данных я подразумеваю хранения промежуточных данных, таких как например id пользователя, данных счетчиков и прочее.
Сам класс с функциями для работы с сессиями находится в папке /system/classes/kohana/session.php. Класс для наследования выше уровнем /system/classes/session.php.
Если вам нужна более тщательная настройка для сессий то необходимо создать файл в папке application/config/ с именем session.php.
return array( 'native' => array( 'name' => 'session_name', 'lifetime' => 43200, ), 'cookie' => array( 'name' => 'cookie_name', 'encrypted' => TRUE, 'lifetime' => 43200, ), 'database' => array( 'name' => 'cookie_name', 'encrypted' => TRUE, 'lifetime' => 43200, 'group' => 'default', 'table' => 'table_name', 'columns' => array( 'session_id' => 'session_id', 'last_active' => 'last_active', 'contents' => 'contents' ), 'gc' => 500, ), );
Существуют несколько вариантов хранения сессий, стандартная конфигурация хранит сессию в cookie, а можно хранить в базе для этого нужно создать таблицу:
CREATE TABLE `sessions` ( `session_id` VARCHAR(24) NOT NULL, `last_active` INT UNSIGNED NOT NULL, `contents` TEXT NOT NULL, PRIMARY KEY (`session_id`), INDEX (`last_active`) ) ENGINE = MYISAM;
При хранении сессий в базе, можно хранить до 64 кб заместо 4 кб при стандартной конфигурации.
Также необходимо чтобы был подключен модуль database.