/** * Garbage Collection * * @param int $maxlifetime * @return true */ public function gc($maxlifetime) { $this->delete($this->getAdapter()->quoteIdentifier($this->options->getModifiedColumn()) . ' + ' . $this->getAdapter()->quoteIdentifier($this->options->getLifetimeColumn()) . ' < ' . $this->getAdapter()->quote(time())); return true; }
public function testSetters() { $options = new DbTableGatewayOptions(); $options->setIdColumn('testId')->setNameColumn('testName')->setModifiedColumn('testModified')->setLifetimeColumn('testLifetime')->setDataColumn('testData'); $this->assertEquals('testId', $options->getIdColumn()); $this->assertEquals('testName', $options->getNameColumn()); $this->assertEquals('testModified', $options->getModifiedColumn()); $this->assertEquals('testLifetime', $options->getLifetimeColumn()); $this->assertEquals('testData', $options->getDataColumn()); }
/** * Write session data * * @param string $id * @param string $data * @return bool */ public function write($id, $data) { $data = [$this->options->getModifiedColumn() => time(), $this->options->getDataColumn() => (string) $data]; $rows = $this->tableGateway->select([$this->options->getIdColumn() => $id, $this->options->getNameColumn() => $this->sessionName]); if ($rows->current()) { return (bool) $this->tableGateway->update($data, [$this->options->getIdColumn() => $id, $this->options->getNameColumn() => $this->sessionName]); } $data[$this->options->getLifetimeColumn()] = $this->lifetime; $data[$this->options->getIdColumn()] = $id; $data[$this->options->getNameColumn()] = $this->sessionName; return (bool) $this->tableGateway->insert($data); }
/** * Garbage Collection * * @param int $maxlifetime * @return true */ public function gc($maxlifetime) { $platform = $this->tableGateway->getAdapter()->getPlatform(); return (bool) $this->tableGateway->delete(sprintf('%s + %s < %d', $platform->quoteIdentifier($this->options->getModifiedColumn()), $platform->quoteIdentifier($this->options->getLifetimeColumn()), time())); }
/** * Sets up the database connection and creates the table for session data * * @param Zend\Session\SaveHandler\DbTableGatewayOptions $options * @return void */ protected function setupDb(DbTableGatewayOptions $options) { $this->adapter = new Adapter(array( 'driver' => 'pdo_sqlite', 'database' => ':memory:', )); $query = <<<EOD CREATE TABLE `sessions` ( `{$options->getIdColumn()}` text NOT NULL, `{$options->getNameColumn()}` text NOT NULL, `{$options->getModifiedColumn()}` int(11) default NULL, `{$options->getLifetimeColumn()}` int(11) default NULL, `{$options->getDataColumn()}` text, PRIMARY KEY (`{$options->getIdColumn()}`, `{$options->getNameColumn()}`) ); EOD; $this->adapter->query($query, Adapter::QUERY_MODE_EXECUTE); $this->tableGateway = new TableGateway('sessions', $this->adapter); }