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 = array($this->options->getModifiedColumn() => time(), $this->options->getDataColumn() => (string) $data); $rows = $this->tableGateway->select(array($this->options->getIdColumn() => $id, $this->options->getNameColumn() => $this->sessionName)); if ($row = $rows->current()) { return (bool) $this->tableGateway->update($data, array($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); }
/** * 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); }