Tecnologia -> Linguagem -> PHP -> Zend Framework: Armazenar dados da sessão no banco de dados

Zend Framework: Armazenar dados da sessão no banco de dados

Em um dos meus post anterior eu escrevi como salvar os dados da sessão no banco de dados. A razão por trás salvar os dados da sessão no banco de dados é que os dados se tornam mais seguras e podem ser facilmente recuperados mais tarde.
Vamos ver como é simples e fácil é para salvar os dados da sessão no banco de dados usando Zend_Session_SaveHandler_DbTable no Zend Framework.
1. Criação de tabela de banco de dados para a realização de sessão
Antes de escrever código que você vai precisar criar uma tabela no banco de dados para armazenar dados de sessão. Execute a seguinte consulta para este fim.
CRIAR sessão TABLE `( 
`id` CHAR (32), 
`` int modificado, 
tempo de vida `int, 
`texto` dados, 
PRIMARY KEY (`id`) 
);

2.Making configuração necessária no arquivo de bootstrap.
Você só vai precisar apenas algumas linhas de código no seu arquivo de bootstrap.
Depois de fazer a configuração do banco de dados no seu arquivo de bootstrap, escreva o seguinte código.
$ Config = array ( 
    'name' => 'sessão', 
    'primários' => 'id', 
    'modifiedColumn' => 'modificado', 
    'DataColumn' => 'dados', 
    'lifetimeColumn' =>

Na matriz $ config dizemos o nome da tabela que irá armazenar as informações da sessão, a chave primária da tabela, a coluna que irá armazenar a data e hora de modificação da sessão (* nix timestamp), coluna que irá armazenar os dados da sessão, ea coluna que guardar as informações sobre quanto tempo vai durar a sessão. Depois de definir esta matriz de configuração que chamamos setSaveHandler () método-método estático, do Zend_Session. Este setSaveHandler () método accept objeto Zend_Session_SaveHandler_DbTable. Zend_Session_SaveHandler_DbTable tomar array de configuração como um argumento. Já fizemos toda a configuração necessária. A única coisa que precisa fazer agora é começar a nossa sessão. Sessão pode ser iniciada no arquivo de bootstrap, no entanto, não é necessário para a sessão ser iniciada aqui. Você pode iniciá-lo em qualquer controlador de que precisava. Em qualquer lugar em seu controlador, escreva

$ Namespace = new Zend_Session_Namespace (); 
$ namespace-> name = "Faheem";

e verificar a sua tabela de sessão. A tabela não irá apenas manter id da sessão, mas também o timestamp modificada quando a sessão foi modificado tempo da vida, da sessão e os dados da sessão em formato especial.
Experimente. Seu muito legal.