Comus Party 1.0.0
Application web de mini-jeux en ligne
Chargement...
Recherche...
Aucune correspondance
gameRecord.class.php
Aller à la documentation de ce fichier.
1<?php
10
11namespace ComusParty\Models;
12
13
14use DateTime;
15use Random\RandomException;
16
28{
32 case WAITING;
36 case STARTED;
40 case FINISHED;
45 case UNKNOWN;
46}
47
53{
58 private string $code;
64 private ?string $token;
69 private Game $game;
74 private ?Player $hostedBy;
79 private ?array $players;
89 private bool $private;
94 private DateTime $createdAt;
99 private DateTime $updatedAt;
104 private ?DateTime $finishedAt;
105
120 public function __construct(string $code, Game $game, ?Player $hostedBy, ?array $players, GameRecordState $state, bool $isPrivate, ?string $token = null, ?DateTime $createdAt = null, ?DateTime $updatedAt = null, ?DateTime $finishedAt = null)
121 {
122 $this->code = $code;
123 $this->game = $game;
124 $this->hostedBy = $hostedBy;
125 $this->players = $players;
126 $this->state = $state;
127 $this->private = $isPrivate;
128 $this->token = $token;
129 $this->createdAt = $createdAt ?? new DateTime();
130 $this->updatedAt = $updatedAt ?? new DateTime();
131 $this->finishedAt = $finishedAt;
132 }
133
139 public function getCode(): string
140 {
141 return $this->code;
142 }
143
150 public function setCode(string $code): void
151 {
152 $this->code = $code;
153 }
154
160 public function getToken(): string|null
161 {
162 return $this->token;
163 }
164
171 public function setToken(?string $token): void
172 {
173 $this->token = $token;
174 }
175
181 public function generateToken(): string
182 {
183 $token = bin2hex(random_bytes(16));
184 $this->setToken(hash('sha256', $token));
185 return $token;
186 }
187
193 public function getGame(): Game
194 {
195 return $this->game;
196 }
197
204 public function setGame(Game $game): void
205 {
206 $this->game = $game;
207 }
208
214 public function getHostedBy(): Player|null
215 {
216 return $this->hostedBy;
217 }
218
225 public function setHostedBy(?Player $player): void
226 {
227 $this->hostedBy = $player;
228 }
229
235 public function getPlayers(): ?array
236 {
237 return $this->players;
238 }
239
246 public function setPlayers(?array $players): void
247 {
248 $this->players = $players;
249 }
250
256 public function getState(): GameRecordState
257 {
258 return $this->state;
259 }
260
267 public function setState(GameRecordState $state): void
268 {
269 $this->state = $state;
270 }
271
277 public function isPrivate(): bool
278 {
279 return $this->private;
280 }
281
288 public function setPrivate(bool $isPrivate): void
289 {
290 $this->private = $isPrivate;
291 }
292
298 public function getCreatedAt(): DateTime
299 {
300 return $this->createdAt;
301 }
302
309 public function setCreatedAt(DateTime $createdAt): void
310 {
311 $this->createdAt = $createdAt;
312 }
313
319 public function getUpdatedAt(): DateTime
320 {
321 return $this->updatedAt;
322 }
323
330 public function setUpdatedAt(DateTime $updatedAt): void
331 {
332 $this->updatedAt = $updatedAt;
333 }
334
340 public function getFinishedAt(): ?DateTime
341 {
342 return $this->finishedAt;
343 }
344
351 public function setFinishedAt(?DateTime $finishedAt): void
352 {
353 $this->finishedAt = $finishedAt;
354 }
355
361 public function addPlayer(Player $player): void
362 {
363 $this->players[] = $player;
364 }
365
371 public function removePlayer(Player $player): void
372 {
373 $key = array_search($player, $this->players);
374 if ($key !== false) {
375 unset($this->players[$key]);
376 }
377 }
378}
getCreatedAt()
Getter de l'attribut createdAt.
setHostedBy(?Player $player)
Setter de l'attribut hostedBy.
getToken()
Getter de l'attribut token.
generateToken()
Génère un token aléatoire pour la partie.
setToken(?string $token)
Setter de l'attribut token.
removePlayer(Player $player)
Supprime un joueur de la partie.
setState(GameRecordState $state)
Setter de l'attribut state.
setPlayers(?array $players)
Setter de l'attribut players.
isPrivate()
Getter de l'attribut isPrivate.
getUpdatedAt()
Getter de l'attribut updatedAt.
getFinishedAt()
Getter de l'attribut finishedAt.
getGame()
Getter de l'attribut game.
setCode(string $code)
Setter de l'attribut uuid.
setUpdatedAt(DateTime $updatedAt)
Setter de l'attribut updatedAt.
setGame(Game $game)
Setter de l'attribut game.
getPlayers()
Getter de l'attribut players.
getCode()
Getter de l'attribut uuid.
setPrivate(bool $isPrivate)
Setter de l'attribut isPrivate.
setFinishedAt(?DateTime $finishedAt)
Setter de l'attribut finishedAt.
setCreatedAt(DateTime $createdAt)
Setter de l'attribut createdAt.
getHostedBy()
Getter de l'attribut hostedBy.
__construct(string $code, Game $game, ?Player $hostedBy, ?array $players, GameRecordState $state, bool $isPrivate, ?string $token=null, ?DateTime $createdAt=null, ?DateTime $updatedAt=null, ?DateTime $finishedAt=null)
Constructeur de la classe GameRecord.
addPlayer(Player $player)
Ajoute un joueur à la partie.
getState()
Getter de l'attribut state.
GameRecordState
Enumération des états d'une partie.
@ UNKNOWN
L'état WAITING indique que la partie est en attente de joueurs pour démarrer.