186 lines
4.6 KiB
PHP
186 lines
4.6 KiB
PHP
|
<?php
|
||
|
|
||
|
/**
|
||
|
* @brief Une partie de burger quizz
|
||
|
*/
|
||
|
class game
|
||
|
{
|
||
|
|
||
|
///Login du joueur associé à la partie courante
|
||
|
private $user_login;
|
||
|
|
||
|
///Identifiant de la partie
|
||
|
private $id_game;
|
||
|
|
||
|
///Durée de la partie
|
||
|
private $length;
|
||
|
|
||
|
///Tableau de réponse de l'utilisateur
|
||
|
private $reponses_user;
|
||
|
|
||
|
///Date de la partie jouée
|
||
|
private $date;
|
||
|
|
||
|
/**
|
||
|
* @brief Constructeur de game
|
||
|
* @arg $id_game identifiant de la partie
|
||
|
* @arg $user_login login du joueur ayant fait la partie
|
||
|
* @arg $length durée de la partie
|
||
|
* @arg $reponses_user tableau de réponses du joueur
|
||
|
* @arg $date Date durant laquelle la partie a été jouée
|
||
|
*/
|
||
|
public function __construct($id_game, $user_login = NULL, $length = NULL, $reponses_user = NULL, $date = NULL)
|
||
|
{
|
||
|
//On met en place les données dans la attributs spécifiques
|
||
|
if ($user_login == NULL)
|
||
|
{
|
||
|
//Chargement automatique des données
|
||
|
$this->autobuild($id_game);
|
||
|
} else
|
||
|
{
|
||
|
$this->user_login = $user_login;
|
||
|
$this->length = $length;
|
||
|
$this->reponses_user = $reponses_user;
|
||
|
$this->id_game = $id_game;
|
||
|
$this->date = $date;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private function autobuild($id)
|
||
|
{
|
||
|
//Inclusion des fichiers nécessaires
|
||
|
require_once 'dao/game_dao.php';
|
||
|
|
||
|
//Création d'un game DAO
|
||
|
$dao = new game_dao();
|
||
|
|
||
|
//Chargement des données
|
||
|
$datas = $dao->select($id);
|
||
|
|
||
|
//Mise en place des données
|
||
|
$this->id_game = $id;
|
||
|
$this->user_login = $datas["user_login"];
|
||
|
$this->length = $datas["length"];
|
||
|
$this->date = $datas["date"];
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* @brief Retourne la durée de la partie
|
||
|
* @return durée
|
||
|
*/
|
||
|
public function getLength()
|
||
|
{
|
||
|
return $this->length;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Obtient le login de l'utilisateur ayant joué à cette partie
|
||
|
* @return string
|
||
|
*/
|
||
|
public function getUserLogin()
|
||
|
{
|
||
|
return $this->user_login;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Obtient les réponses de l'utilisateur associées à la partie
|
||
|
* @return reponses[]
|
||
|
*/
|
||
|
public function getReponses()
|
||
|
{
|
||
|
//Si il n'y a rien comme réponses, on les charge
|
||
|
if ($this->reponses_user == NULL)
|
||
|
{
|
||
|
//Inclusion des fichiers nécessaire
|
||
|
include_once './dao/reponse_user_dao.php';
|
||
|
include_once './metier/reponse_user.php';
|
||
|
|
||
|
//Initialisation du DAO
|
||
|
$dao = new reponse_user_dao();
|
||
|
|
||
|
//Chargement des données
|
||
|
$data = $dao->select($this->id_game);
|
||
|
|
||
|
//Mise en place d'une variable de stockage
|
||
|
$tmp = array();
|
||
|
$i = 0;
|
||
|
|
||
|
//Encapsulation des données
|
||
|
foreach ($data as $row)
|
||
|
{
|
||
|
$tmp[$i] = new reponse_user($row["game_id"], $row["question_id"], $row["reponse"]);
|
||
|
$i++;
|
||
|
}
|
||
|
|
||
|
//On termine par sauvegarder les données
|
||
|
$this->reponses_user = $tmp;
|
||
|
}
|
||
|
|
||
|
return $this->reponses_user;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Obtient l'identifiant de la partie
|
||
|
* @return string
|
||
|
*/
|
||
|
public function getGameId()
|
||
|
{
|
||
|
return $this->id_game;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Définit l'identfiant de la partie
|
||
|
* @arg $id int
|
||
|
*/
|
||
|
public function setGameId($id)
|
||
|
{
|
||
|
$this->id_game = $id;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Obtient quand la partie a été jouée
|
||
|
*/
|
||
|
public function getDate()
|
||
|
{
|
||
|
return $this->date;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @brief Enregistre une partie dans la base de données
|
||
|
*/
|
||
|
public static function saveGame(&$data)
|
||
|
{
|
||
|
//Inclusion des fichier
|
||
|
include_once './dao/game_dao.php';
|
||
|
include_once './dao/reponse_user_dao.php';
|
||
|
|
||
|
//Création d'un nouveau DAO
|
||
|
$dao = new game_dao();
|
||
|
|
||
|
//On enregistre la partie
|
||
|
$dao->insert($data);
|
||
|
|
||
|
//On récupère la dernière partie enregistrée
|
||
|
$new_id = $dao->getLastId();
|
||
|
|
||
|
//On met à jour l'objet passé en argument
|
||
|
$data->setGameId($new_id[0]);
|
||
|
|
||
|
//On enregistre les réponses
|
||
|
$dao = new reponse_user_dao();
|
||
|
|
||
|
$reps = $data->getReponses();
|
||
|
|
||
|
foreach ($reps as $rep)
|
||
|
{
|
||
|
$rep->setGame($new_id[0]);
|
||
|
$dao->insert($rep);
|
||
|
}
|
||
|
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
?>
|