Ce fichier PHP définit un gestionnaire UpdatePlayerByEmailHandler dans une application Mezzio. Ce gestionnaire est responsable de la mise à jour des informations 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/UpdatePlayerByEmailHandler.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 UpdatePlayerByEmailHandler 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 les données nécessaires sont présentes
        if (!isset($data['email'], $data['score'], $data['treasures_found'], $data['animals_crushed'])) {
            return new JsonResponse(['status' => 'error', 'message' => 'Invalid data provided']);
        }

        $email = $data['email'];

        // Met à jour le joueur dans la base de données
        $sql = 'UPDATE players SET score=?, treasures_found=?, animals_crushed=? WHERE email=?';
        $result = $this->adapter->query($sql, [
            $data['score'],
            $data['treasures_found'],
            $data['animals_crushed'],
            $email
        ]);

        // Retourne une réponse en fonction du succès de la mise à jour
        if ($result) {
            return new JsonResponse(['status' => 'success', 'updated_email' => $email]);
        } else {
            return new JsonResponse(['status' => 'error', 'message' => 'Failed to update player']);
        }
    }
}

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 les informations nécessaires sont présentes.

  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 les informations 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