10namespace ComusParty\Models;
68 $stmt = $this->pdo->prepare(
72 $stmt->bindParam(
':id', $id);
74 $stmt->setFetchMode(PDO::FETCH_ASSOC);
75 $gameTab = $stmt->fetch();
76 if ($gameTab ===
false) {
79 return $this->
hydrate($gameTab);
91 $game->setId($gameTab[
'id']);
92 $game->setName($gameTab[
'name']);
93 $game->setDescription($gameTab[
'description']);
94 $game->setPathImg($gameTab[
'img_path']);
96 $game->setCreatedAt(
new DateTime($gameTab[
'created_at']));
97 $game->setUpdatedAt(
new DateTime($gameTab[
'updated_at']));
98 $game->setTags($gameTab[
'tags'] ??
null);
110 return match (strtoupper($state)) {
111 'AVAILABLE' => GameState::AVAILABLE,
112 'UNAVAILABLE' => GameState::UNAVAILABLE,
126 $stmt = $this->pdo->prepare(
130 $stmt->setFetchMode(PDO::FETCH_ASSOC);
131 $gamesTab = $stmt->fetchAll();
145 foreach ($gamesTab as $gameTab) {
146 $games[] = $this->
hydrate($gameTab);
158 $stmt = $this->pdo->prepare(
159 'SELECT g.*, GROUP_CONCAT(t.name) as tags
161 JOIN ' .
DB_PREFIX .
'tagged tg ON g.id = tg.game_id
162 JOIN ' .
DB_PREFIX .
'tag t ON tg.tag_id = t.id
165 $stmt->setFetchMode(PDO::FETCH_ASSOC);
166 $gamesTab = $stmt->fetchAll();
167 $gamesTab = array_map(
function ($game) {
168 $game[
'tags'] = explode(
',', $game[
'tags']);
182 $stmt = $this->pdo->prepare(
183 'SELECT g.*, GROUP_CONCAT(t.name) as tags
185 JOIN ' .
DB_PREFIX .
'tagged tg ON g.id = tg.game_id
186 JOIN ' .
DB_PREFIX .
'tag t ON tg.tag_id = t.id
189 $stmt->bindParam(
':id', $id);
191 $stmt->setFetchMode(PDO::FETCH_ASSOC);
192 $gameTab = $stmt->fetch();
193 if ($gameTab ===
false) {
196 $gameTab[
'tags'] = explode(
',', $gameTab[
'tags']);
197 return $this->
hydrate($gameTab);
hydrate(array $gameTab)
Hydrate un d'objet Game à partir d'un tableau de jeux de la table game passé en paramètre.
findWithDetailsById(?int $id)
Retourne un objet Game à partir de l'identifiant passé en paramètre avec ses tags associés.
findAllWithTags()
Retourne un tableau d'objets Game à partir de la table game avec leurs tags associés.
getPdo()
Retourne la connexion à la base de données.
hydrateMany(array $gamesTab)
Hydrate un tableau d'objets Game à partir de la table game.
findById(int $id)
Retourne un objet Game (ou null) à partir de l'identifiant passé en paramètre.
findAll()
Retourne un tableau d'objets Game à partir de la table game.
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
__construct(?PDO $pdo)
Constructeur de la classe GameDAO.
transformStringToGameState(string $state)
Retourne l'état du jeu en type Etat à partir d'un état de type string.
GameState
Enumération des états d'un jeu.
@ MAINTENANCE
L'état AVAILABLE indique que le jeu est disponible pour les utilisateurs.
const DB_PREFIX
Préfixe des tables de la base de données.