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());
 }
예제 #2
0
 /**
  * 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);
    }