Ejemplo n.º 1
0
 public function setSessionStorage()
 {
     $options = new DbTableGatewayOptions();
     $options->setDataColumn('session_data')->setIdColumn('session_id')->setLifetimeColumn('life_time')->setModifiedColumn('update_time')->setNameColumn('session_name');
     $handler = new DbTableGateway($this->tblgw, $options);
     $this->sessionManager = new SessionManager();
     $this->sessionManager->setSaveHandler($handler);
     if ($this->sessionConfig) {
         $options = gv('options', $this->sessionConfig);
         $sessionConfig = new \Zend\Session\Config\SessionConfig();
         $sessionConfig->setOptions($options);
         $this->sessionManager->setConfig($sessionConfig);
     }
     $this->sessionManager->setSaveHandler($handler);
     Container::setDefaultManager($this->sessionManager);
     $this->sessionManager->start();
     $this->container = new Container('init');
     if (!$this->container->init) {
         $request = $this->request;
         $this->container->init = 1;
         $this->container->remoteAddr = $request->getServer()->get('REMOTE_ADDR');
         $this->container->httpUserAgent = $request->getServer()->get('HTTP_USER_AGENT');
         $this->container->create = time();
     }
     // update session id
     if (SESSION_ID_EXPIRE < time() - $this->container->create) {
         $this->sessionManager->regenerateId(true);
         $this->container->create = time();
     }
     return $this->sessionManager;
 }
Ejemplo n.º 2
0
 /**
  * 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());
 }
Ejemplo n.º 4
0
 public function setSessionStorage()
 {
     $gwOpts = new DbTableGatewayOptions();
     $gwOpts->setDataColumn('data');
     $gwOpts->setIdColumn('id');
     $gwOpts->setLifetimeColumn('lifetime');
     $gwOpts->setModifiedColumn('modified');
     $gwOpts->setNameColumn('name');
     if (isset($this->serviceConfig['base64Encode']) && $this->serviceConfig['base64Encode']) {
         $saveHandler = new EncodedDbTableGateway($this->tblGW, $gwOpts);
     } else {
         $saveHandler = new DbTableGateway($this->tblGW, $gwOpts);
     }
     $sessionManager = new SessionManager();
     if ($this->sessionConfig) {
         $sessionConfig = new \Zend\Session\Config\SessionConfig();
         $sessionConfig->setOptions($this->sessionConfig);
         $sessionManager->setConfig($sessionConfig);
     }
     $sessionManager->setSaveHandler($saveHandler);
     Container::setDefaultManager($sessionManager);
     $sessionManager->start();
 }
Ejemplo n.º 5
0
 /**
  * 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);
    }