Example #1
0
 /** Creates a new session. */
 public static function newSession($assignment_id, $worker_id, Game $game)
 {
     $new_session = new Session();
     $new_session->id = uniqid('', true);
     $new_session->assignment_id = $assignment_id;
     $new_session->worker_id = $worker_id;
     $new_session->game = $game;
     $new_session->current_step = $game->steps[0];
     $new_session->repetition = 0;
     $new_session->data = array();
     $new_session->status = self::awaiting_user_input;
     $new_session->setExpiration($new_session->current_step->time_limit);
     $dbh = Database::handle();
     $sth = $dbh->prepare('INSERT INTO sessions ' . '(session_id, assignment_id, worker_id, game, data, status, expires) ' . 'VALUES ' . '(:session, :assignment, :worker, :game, :data, :status, :expires)');
     $sth->bindValue(':session', $new_session->id);
     $sth->bindValue(':assignment', $new_session->assignment_id);
     $sth->bindValue(':worker', $new_session->worker_id);
     $sth->bindValue(':game', $new_session->game->getID());
     $sth->bindValue(':data', serialize($new_session->data));
     $sth->bindValue(':status', $new_session->status);
     $sth->bindValue(':expires', $new_session->expires);
     $sth->execute();
     self::$sessions[$new_session->id] = $new_session;
     return self::$sessions[$new_session->id];
 }