burger-quizz/metier/groupe.php

126 lines
2.9 KiB
PHP

<?php
//Chargement des include
require_once './dao/groupe_dao.php';
/**
* @brief Groupe de questions
*/
class groupe
{
///Identifiant du groupe
private $id;
///1er réponse possible des questions du groupe (string)
private $reponse_0;
///2eme réponse possible des questions du groupes (string)
private $reponse_1;
///Tableau de questions relatives au groupe
private $questions;
///Catégorie du groupe (string)
private $categorie;
/**
* @brief Constructeur de groupe
* @arg $id identidiant du groupe
* @note les données sont chargées à partir de l'identifiant
*/
public function __construct($id)
{
//Creation d'un nouvel objet DAO
$dao = new groupe_dao();
//Chargement des données
$data = $dao->select($id);
//Encapsulation des données
$this->id = $id;
$this->reponse_0 = $data["reponse0"];
$this->reponse_1 = $data["reponse1"];
$this->categorie = $data["categorie_nom"];
$this->questions = null; //On ne charge pas les questions pour éviter un lag
}
/**
* @brief Obtient l'identifiant du groupe
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @brief Obtient la 1er réponse possible du groupe
* @return string
*/
public function getReponse_0()
{
return $this->reponse_0;
}
/**
* @brief Obtient la 2nde réponse possible du groupe
* @return string
*/
public function getReponse_1()
{
return $this->reponse_1;
}
/**
* @brief Obtient les questions relatives au groupes
* @return question[]
*/
public function getQuestion()
{
if ($this->questions == NULL)
{
//On charge les fichiers nécessaires
include_once './dao/question_dao.php';
include_once './metier/question.php';
//On instancie un nouveau DAO
$dao = new question_dao();
//On charge les données
$data = $dao->selectByGroup($this->id);
//On initialise une variable temporaire pour stocker les données
$tmp = array();
$i = 0;
//On parse toutes les données
foreach ($data as $row)
{
$tmp[$i] = new question($row["id"], $row["group_id"], $row["question"], $row["bonnereponse"]);
$i++;
}
//On sauvegarde les données dans l'attribut spécifique de la classe
$this->questions = $tmp;
}
//On retourne les données;
return $this->questions;
}
/**
* @brief Obtient la catégorie du groupe
* @return string
*/
public function getCategorie()
{
return $this->categorie;
}
}
?>