/**
  * @runInSeparateProcess
  */
 public function testExpiredSession()
 {
     $MysqlAdapter = new MysqlPDOAdapter($GLOBALS['db_type'] . ':host=' . $GLOBALS['db_host'] . ';dbname=' . $GLOBALS['db_name'] . ';charset=utf8mb4', $GLOBALS['db_username'], $GLOBALS['db_password'], array(\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ, \PDO::ATTR_ERRMODE => \PDO::ERRMODE_WARNING));
     $dbase = new Database($MysqlAdapter);
     $sessionHandler = new DatabaseSessionHandler($dbase);
     $session = new Session(['expire' => 8]);
     $session->setSessionHandler($sessionHandler);
     $session->start();
     $session_id = $session->id;
     $session->time = $session->time - 1800;
     $session->commit();
     $session->setSessionHandler($sessionHandler);
     $session->start();
     $session_id2 = $session->id;
     $test = $session_id === $session_id2 ? 1 : 0;
     $this->assertEquals(0, $test);
     $session->destroy();
 }
 /**
  * @runInSeparateProcess
  */
 public function testExpiredSession()
 {
     if (!class_exists('Memcached')) {
         $this->markTestSkipped('Memcached module not installed');
     }
     //create memcached instance
     $memcached = new Memcached();
     //connect to memcached server
     $memcached->addServer($GLOBALS['mem_host'], $GLOBALS['mem_port']);
     $sessionHandler = new MemcachedSessionHandler($memcached, 8);
     $session = new Session(['expire' => 8]);
     $session->setSessionHandler($sessionHandler);
     $session->start();
     $session_id = $session->id;
     $session->time = $session->time - 1800;
     $session->commit();
     $session->setSessionHandler($sessionHandler);
     $session->start();
     $session_id2 = $session->id;
     $test = $session_id === $session_id2 ? 1 : 0;
     $this->assertEquals(0, $test);
     $session->destroy();
 }
Example #3
0
//add unresolvable class to DIResolver
$DIResolver->cacheUnResolvable('\\Linna\\Database\\Database', $dataBase);
//$DIResolver->cacheUnResolvable('\Memcached', $memcached);
//$DIResolver->cacheUnResolvable('\Linna\Session\MemcachedSessionHandler', new MemcachedSessionHandler($memcached, $options['session']['expire']));
/**
 * Session section
 *
 */
//resolve Session Handler
$sessionHandler = $DIResolver->resolve('\\Linna\\Session\\DatabaseSessionHandler');
//$sessionHandler = $DIResolver->resolve('\Linna\Session\MemcachedSessionHandler');
//create session object
$session = new Session($options['session']);
//set session handler
//optional if not set, app will use php session standard storage
$session->setSessionHandler($sessionHandler);
//start session
$session->start();
//store session instance
$DIResolver->cacheUnResolvable('\\Linna\\Session\\Session', $session);
/**
 * Router Section
 *
 */
//start router
$router = new Router($appRoutes, $options['router']);
//evaluate request uri and method
$router->validate($_SERVER['REQUEST_URI'], $_SERVER['REQUEST_METHOD']);
//get route
$route = $router->getRoute();
//get model linked to route