src/App/Handler/UpdatePlayerByEmailHandler
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 :
-
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 les informations nécessaires sont présentes. -
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.
-
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.