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 :

  1. Initialisation : Le constructeur initialise l'adaptateur de base de données (Adapter), qui est utilisé pour interagir avec la base de données.

  2. Traitement de la Requête : La méthode handle est 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.

  3. 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.

  4. 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.

Modifié le: jeudi 18 janvier 2024, 13:33