5.7 Sessions
O componente Session do CakePHP oferece uma maneira de persistir dados do cliente entre requisições de páginas. Este componente funciona como um encapsulador para a variável $_SESSION além de oferecer métodos de conveniência para diversas funções relacionadas ao $_SESSION.
Sessões podem ser persistidas de diferentes maneiras. O padrão é usar as configurações definidas pelo PHP; no entanto existem outras opções.
- cake
- Salva os arquivos de sessão do diretório tmp/sessions de sua aplicação.
- database
- Utiliza sessões da base de dados do CakePHP.
- cache
- Utiliza o mecanismo de cache configurado em Cache::config(). Muito útil para ser usado em conjunto com o Memcache (em ambientes servindo múltiplas aplicações) para armazenar tanto dados em cache quanto dados de sessões.
- php
- A configuração padrão. Salva os arquivos de sessão conforme definido no php.ini.
Para modificar o método padrão de manipulação de sessões, altere a configuração de Session.save para refletir a opção de sua preferência. Se você escolher 'database', você deveria também descomentar as configurações de Session.database e rodar o arquivo de script SQL localizado em app/config.
Para usar uma configuração personalizada, defina o valor de Session.save para um nome de um arquivo. O CakePHP vai considerar este arquivo informado no diretório CONFIGS.
// app/config/core.php
Configure::write('Session.save','my_session');
// app/config/core.phpConfigure::write('Session.save','my_session');
Isto permite que você personalize a manipulação de sessões.
// app/config/my_session.php
//
// Reverte o valor e força checagem do referrer mesmo quando
// Security.level for medium
ini_restore('session.referer_check');
ini_set('session.use_trans_sid', 0);
ini_set('session.name', Configure::read('Session.cookie'));
// Cookies agora são destruídos quando o navegador é fechado,
// não persiste a informação por dias e é o padrão para nível
// de segurança em low ou medium
ini_set('session.cookie_lifetime', 0);
// Cookie path agora é '/', mesmo se sua aplicação estiver
// em um subdiretório no domínio
$this->path = '/';
ini_set('session.cookie_path', $this->path);
// Cookies de sessão agora são persistidos para todos
// os subdomínios
ini_set('session.cookie_domain', env('HTTP_BASE'));
// app/config/my_session.php//// Reverte o valor e força checagem do referrer mesmo quando// Security.level for mediumini_restore('session.referer_check');ini_set('session.use_trans_sid', 0);ini_set('session.name', Configure::read('Session.cookie'));// Cookies agora são destruídos quando o navegador é fechado,// não persiste a informação por dias e é o padrão para nível// de segurança em low ou mediumini_set('session.cookie_lifetime', 0);// Cookie path agora é '/', mesmo se sua aplicação estiver// em um subdiretório no domínio$this->path = '/';ini_set('session.cookie_path', $this->path);// Cookies de sessão agora são persistidos para todos// os subdomíniosini_set('session.cookie_domain', env('HTTP_BASE'));


























