enigme_gateway = new EnigmeGateway(); $this->partie_gateway = new PartieGateway(); $this->utilisateur_gateway = new UtilisateurGateway(); $this->nettoyage = new Nettoyage(); $this->validation = new Validation(); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $view['erreur']); } } public function addToQueue() { echo '1'; if ($this->utilisateur_gateway->isAlreadyInqueue($_SESSION['utilisateur'])) { if($this->utilisateur_gateway->queueFilled()) { $_REQUEST['action']='launchGame'; } } echo '2'; if (!$this->partie_gateway->partieInQueueExists()) { echo '3'; $tabEnigme = $this->enigme_gateway->findMultiEnigma(); $idNewPartie = $this->partie_gateway->findPartieMaxId(); $partie = $this->partie_gateway->creerPartieMulti($idNewPartie, $tabEnigme); } else { echo '4'; $idPartieInQueue = $this->partie_gateway->findPartieInQueue(); echo '5'; $tabEnigme = $this->enigme_gateway->findEnigmaFromPartie($idPartieInQueue); echo '6'; $partie = $this->partie_gateway->rejoindrePartieMulti($idPartieInQueue, $tabEnigme); echo '7'; } echo '8'; $this->utilisateur_gateway->addToQueue($_SESSION['utilisateur'], $partie); $userGroup = (string)$partie->getIdPartie(); echo ''; } public function launchGame() { $this->utilisateur_gateway->launchGame($_SESSION['utilisateur']); } public function logout() { session_unset(); session_destroy(); $_SESSION = array(); $_SESSION['role'] = 'visitor'; header('Location: index.php'); } public function getEnigmeByOrdre(int $num) : Enigme { $tabEnigme = $this->enigme_gateway->findByOrdre($num); if ($tabEnigme == null) { $last = $this->enigme_gateway->findLastEnigmaByOrdre(); if ($last[0]->getOrdre() == ($num - 1)){ return new Enigme(1,"","","","",""); } throw new Exception("Enigme non trouvée"); } return $tabEnigme[0]; } }