public function setDbHandler() { $tableGateway = new TableGateway('session', $this->getServiceLocator()->get('Zend\\Db\\Adapter\\Adapter')); $saveHandler = new DbTableGateway($tableGateway, new DbTableGatewayOptions()); //open session $sessionConfig = new SessionConfig(); $saveHandler->open($sessionConfig->getOption('save_path'), $this->namespace); $this->session->getManager()->setSaveHandler($saveHandler); }
public function __construct($namespace = null, $member = null, SessionManager $manager = null) { if ($namespace !== null) { $this->namespace = $namespace; } if ($member !== null) { $this->member = $member; } $this->session = new Container($this->namespace, $manager); $tableGateway = new TableGateway($this->table, $this->adapter); $dbTableGatewayOptions = new DbTableGatewayOptions(); $dbTableGateway = new DbTableGateway($tableGateway, $dbTableGatewayOptions); $dbTableGateway->open(null, $this->namespace); $this->getManager()->setSaveHandler($dbTableGateway); }
/** * Destroy session — Override to check the existing session is in the DB, as HHVM errors otherwise * * @param string $id * @return bool */ public function destroy($id) { $rows = $this->tableGateway->select(array($this->options->getIdColumn() => $id, $this->options->getNameColumn() => $this->sessionName)); if ($row = $rows->current()) { return parent::destroy($id); } else { return true; } }
public function testReadWriteTwice() { $this->usedSaveHandlers[] = $saveHandler = new DbTableGateway($this->tableGateway, $this->options); $saveHandler->open('savepath', 'sessionname'); $id = '242'; $this->assertTrue($saveHandler->write($id, serialize($this->testArray))); $this->assertEquals($this->testArray, unserialize($saveHandler->read($id))); $this->assertTrue($saveHandler->write($id, serialize($this->testArray))); $this->assertEquals($this->testArray, unserialize($saveHandler->read($id))); }
/** * Destroy session * * @param string $id * @return bool */ public function destroy($id) { parent::destroy($id); return true; }