Comus Party 1.0.0
Application web de mini-jeux en ligne
Chargement...
Recherche...
Aucune correspondance
rememberToken.dao.php
Aller à la documentation de ce fichier.
1<?php
10
11namespace ComusParty\Models;
12
13use DateMalformedStringException;
14use DateTime;
15use PDO;
16
22{
27 private ?PDO $pdo;
28
33 public function __construct(?PDO $pdo)
34 {
35 $this->pdo = $pdo;
36 }
37
42 public function getPdo(): ?PDO
43 {
44 return $this->pdo;
45 }
46
51 public function setPdo(?PDO $pdo): void
52 {
53 $this->pdo = $pdo;
54 }
55
61 public function insert(RememberToken $rememberToken): bool
62 {
63 $query = $this->pdo->prepare("INSERT INTO cp_remember_user (user_id, token, rmb_key, created_at, expires_at) VALUES (:user_id, :token, :rmb_key, :created_at, :expires_at)");
64
65 $query->bindValue(":user_id", $rememberToken->getUserId());
66 $query->bindValue(":token", $rememberToken->getToken());
67 $query->bindValue(":rmb_key", $rememberToken->getKey());
68 $query->bindValue(":created_at", $rememberToken->getCreatedAt()->format("Y-m-d H:i:s"));
69 $query->bindValue(":expires_at", $rememberToken->getExpiresAt()->format("Y-m-d H:i:s"));
70
71 return $query->execute();
72 }
73
79 public function delete(RememberToken $rememberToken): bool
80 {
81 $query = $this->pdo->prepare("DELETE FROM cp_remember_user WHERE user_id = :user_id AND token = :token");
82
83 $query->bindValue(":user_id", $rememberToken->getUserId());
84 $query->bindValue(":token", $rememberToken->getToken());
85
86 return $query->execute();
87 }
88
96 public function find(int $userId, string $token): ?RememberToken
97 {
98 $query = $this->pdo->prepare("SELECT * FROM cp_remember_user WHERE user_id = :user_id AND token = :token");
99
100 $query->bindValue(":user_id", $userId);
101 $query->bindValue(":token", $token);
102
103 $query->execute();
104
105 $data = $query->fetch();
106
107 if ($data === false) {
108 return null;
109 }
110
111 return $this->hydrate($data);
112 }
113
120 private function hydrate(array $data): RememberToken
121 {
122 return new RememberToken(
123 $data['user_id'],
124 $data['token'],
125 $data['rmb_key'],
126 new DateTime($data['created_at']),
127 new DateTime($data['expires_at'])
128 );
129 }
130
137 public function findByUserId(int $userId): ?array
138 {
139 $query = $this->pdo->prepare("SELECT * FROM cp_remember_user WHERE user_id = :user_id");
140
141 $query->bindValue(":user_id", $userId);
142
143 $query->execute();
144
145 $data = $query->fetch();
146
147 if ($data === false) {
148 return null;
149 }
150
151 return $this->hydrateMany($data);
152 }
153
160 private function hydrateMany(array $datas): array
161 {
162 $rememberTokens = [];
163 foreach ($datas as $data) {
164 $rememberTokens[] = $this->hydrate($data);
165 }
166 return $rememberTokens;
167 }
168
174 public function deleteAllForUserId(int $userId): bool
175 {
176 $query = $this->pdo->prepare("DELETE FROM cp_remember_user WHERE user_id = :user_id");
177
178 $query->bindValue(":user_id", $userId);
179
180 return $query->execute();
181 }
182}
findByUserId(int $userId)
Récupère un jeton de connexion en base de données pour un utilisateur.
find(int $userId, string $token)
Récupère un jeton de connexion en base de données.
deleteAllForUserId(int $userId)
Supprime les jetons de connexion en base de données pour un utilisateur.
hydrate(array $data)
Hydrate un objet RememberToken avec les valeurs du tableau associatif passé en paramètre.
getPdo()
Retourne la connexion à la base de données.
insert(RememberToken $rememberToken)
Insère un jeton de connexion en base de données.
hydrateMany(array $datas)
Hydrate un tableau d'objets RememberToken avec les valeurs des tableaux associatifs du tableau passé ...
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
__construct(?PDO $pdo)
Le constructeur de la classe PlayerDAO.
getUserId()
Retourne l'identifiant de l'utilisateur associé au jeton de connexion.
getCreatedAt()
Retourne la date de création du jeton de connexion.
getToken()
Retourne le jeton de connexion.
getExpiresAt()
Retourne la date d'expiration du jeton de connexion.
getKey()
Retourne la clef d'autorisation.