Archived
1
0
Fork 0
This repository has been archived on 2026-05-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
fiktivkod/library/Fiktiv/Session.php
2010-08-21 12:19:55 +02:00

89 lines
No EOL
2 KiB
PHP

<?php
/**
*
* CREATE
*
* TODO:
* - add support for named sessions
* - add support for dynamic table
*/
class Fiktiv_Session extends Fiktiv_Session_Abstract
{
/**
* Database link
* @var mysql resource
*/
private $_database = null;
private $_sessionTable = 'Sessions';
private $_sessionData = 'Data';
private $_sessionId = 'SessionId';
private $_sessionLife = 'Lifetime';
/**
* Setup the session handler with a database
* @param Zend_Db_Adapter_Abstract $database
*/
public function __construct(Zend_Db_Adapter_Abstract $database)
{
$this->_database = $database;
}
/**
* Open the database connection
*/
public function open()
{
if (!$this->_database->isConnected()) {
$this->_database->getConnection();
return true;
}
return false;
}
/**
* Close the database connection
*/
public function close()
{
if ($this->_database->isConnected()) {
$this->_database->closeConnection();
return true;
}
return false;
}
/**
* Read data from session database
*/
public function read($session)
{
$data = $this->_database->select()->from($this->_sessionTable, $this->_sessionData)->where($this->_sessionId . ' = ?', $session)->query()->fetchObject();
return ($data) ? $data->$this->_sessionData : null;
}
/**
* Write data to session database
*/
public function write($session, $data)
{
try{
return ($this->_database->insert($this->_sessionTable, array($this->_sessionId => $session, $this->_sessionData => $data))) ? true : false;
} catch (Zend_Db_Exception $ex) {
return ($this->_database->update($this->_sessionTable, array($this->_sessionId => $session, $this->_sessionData => $data))) ? true : false;
}
return false;
}
/**
*
*/
public function gc($life)
{}
}