CakePHP : Manual11/Session

Компонент сессий Cake


Оглавление документа

Опции хранения сессий Cake

Cake может сохранять данные сессии тремя способами: как временные файлы в директории Cake, используя механизм PHP по умолчанию, или сохранять в последовательности в базе данных. По умолчанию Cake использует настройки PHP. Заменить эту опцию, чтобы воспользоваться временными файлами или базой данных, можно откоредактировав конфигурационный файл /app/config/core.php. Измените константу CAKE_SESSION_SAVE на 'cake', 'php' или 'database', в зависимости от того, что вам нужно.
core.php настройка сессии
<?
/**
 * CakePHP включает в себя 3 типа сохранений сессий
 * в базе данных или в файлах. Настройте это так как предпочитаете.
 * Если вы хотите использовать свое место для хранения, укажите это в
 * app/config/name.php НЕ ИСПОЛЬЗУЙТЕ имя файла или базы данных как имя.
 *
 * Устанавливая значение cake, вы получите сохранение файлов сессии в директорию /cakedistro/tmp
 * Устанавливая значение php, вы получите сохранение файлов сессии в директорию php по умолчанию
 * Устанавливая значение database, вы получите сохранение данных сессии в базу данных
 *
 *
 */
define('CAKE_SESSION_SAVE''php');
?>


Если вы хотите использовать сохранение данных сессии в базу данных, вам понадобиться создать таблицу в вашей базе. Схема этой таблицы находится в /app/config/sql/sessions.sql.

Использование компонента сессий Cake

Компонент сессий используется для взаимодействия с информацией о сессии. Он включает в себя базовые чтение и запись, но также содержит некоторые возможности для использования сессий, вроде сообщений об ошибках и сообщениях о процесах (например, «Ваши данные успешно сохранены»). Компонент сессий по умолчанию доступен во всех контроллерах Cake.

Вот некоторые функции, которые вы будете использовать чаще всего:

check

Проверяет установлен ли в сессии текущий ключ определенный $name.

del

delete

Удаляет переменную сессии определенную $name.

error

Возвращает последнюю ошибку созданную компонентом сессий. Чаще используется для отладки.

flash

Возвращает последнее сообщение в сессии, установленное setFlash(). Если $key был установлен, самое последнее, сохраненное под этим ключом, сообщение.

read

Возвращает переменную сессии определенную $name.

renew

Обновляет активную сессию, создавая новый ID сессии, старый стирается, данные старой сессии помещаются в новую.

setFlash

Пишет сообщение определенное $flashMessage в сессию (чтобы потом можно было извлечь его с помощью flash()).

Если $layout имеет значение 'default', сообщение храниться как '<div class="message">'.$flashMessage.'</div>'. Если $default имеет значение '' сообщение храниться просто как пропущенное. Если установлено любое другое значение, сообщение хранится внутри отображения Cake определенного $layout.

Параметры вписанные в эту функцию для будующего использования.

Переменная $key позволяет вам хранить сообщения flash под ключами. См. flash() для получения сообщения flash сохраненного без ключа.

valid

Возвращает true если сессия действительна. Лучше всего использвать перед операциями чтения read() чтобы убедиться, что данные сессии, к которым вы пытаетесь получить доступ на самом деле действительны.

write

Записывает переменную определенную $name и $value в активную сессию.