src/App/Handler/UpdateScoreByEmailHandler
Ce fichier PHP définit un gestionnaire UpdateScoreByEmailHandler dans une application Mezzio. Ce gestionnaire est responsable de la mise à jour du score d'un joueur dans une base de données en utilisant son email. Voici une explication détaillée avec des commentaires pour chaque section importante :
<?php
// src/App/Handler/UpdateScoreByEmailHandler.php
namespace App\Handler;
use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Laminas\Db\Adapter\Adapter;
// Importe les classes nécessaires
class UpdateScoreByEmailHandler implements RequestHandlerInterface
{
private $adapter;
public function __construct(Adapter $adapter)
{
$this->adapter = $adapter;
// Constructeur qui initialise l'adaptateur de base de données
}
public function handle(ServerRequestInterface $request): ResponseInterface
{
$data = $request->getParsedBody();
// Récupère les données envoyées dans la requête
// Vérifie si l'email et le score sont présents dans les données
if (!isset($data['email']) || !isset($data['score'])) {
return new JsonResponse(['status' => 'error', 'message' => 'Missing email or score']);
}
// Met à jour le score du joueur dans la base de données
$sql = 'UPDATE players SET score = ? WHERE email = ?';
$result = $this->adapter->query($sql, [$data['score'], $data['email']]);
// Retourne une réponse en fonction du succès de la mise à jour
if ($result) {
return new JsonResponse(['status' => 'success', 'message' => 'Score updated successfully']);
} else {
return new JsonResponse(['status' => 'error', 'message' => 'Failed to update score']);
}
}
}
Ce gestionnaire effectue les opérations suivantes :
-
Initialisation : Le constructeur initialise l'adaptateur de base de données (
Adapter), qui est utilisé pour interagir avec la base de données. -
Traitement de la Requête : La méthode
handleest appelée pour chaque requête HTTP correspondant à ce gestionnaire. Elle extrait les données de la requête et vérifie si l'email et le score sont présents. -
Mise à Jour dans la Base de Données : Si les données sont valides, le gestionnaire exécute une requête SQL pour mettre à jour le score du joueur dans la base de données.
-
Réponse JSON : Le gestionnaire retourne une réponse JSON indiquant le succès ou l'échec de l'opération de mise à jour.
Ce fichier est un exemple de gestionnaire de requêtes dans Mezzio, utilisant l'adaptateur de base de données Laminas pour effectuer des opérations de mise à jour sur une base de données.