Ce fichier PHP définit un gestionnaire ListPlayersHandler dans une application Mezzio. Ce gestionnaire est responsable de récupérer une liste de joueurs depuis une base de données et de retourner cette liste sous forme de réponse JSON. Voici une explication détaillée avec des commentaires pour chaque section importante :

<?php
// src/App/Handler/ListPlayersHandler.php

namespace App\Handler;

use Laminas\Db\Adapter\Adapter;
use Laminas\Db\Sql\Select;
use Laminas\Db\Sql\Sql;
use Laminas\Diactoros\Response\JsonResponse;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;

class ListPlayersHandler 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
    {
        try {
            // Création d'une requête SQL pour sélectionner tous les joueurs
            $sql = new Sql($this->adapter);
            $select = new Select('players');
    
            // Préparation et exécution de la requête
            $statement = $sql->prepareStatementForSqlObject($select);
            $results = $statement->execute();
    
            // Collecte des résultats dans un tableau
            $players = [];
            foreach ($results as $row) {
                $players[] = $row;
            }
    
            // Retourne les données des joueurs en format JSON
            return new JsonResponse($players);
        } catch (\Exception $e) {
            // Gestion des erreurs avec un message d'erreur dans la réponse JSON
            // Remarque : en production, il est préférable de ne pas exposer les détails de l'erreur
            return new JsonResponse(['error' => $e->getMessage()]);
        }
    }
}
?>

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 crée une requête SQL pour sélectionner tous les joueurs de la table players.

  3. Récupération des Données : La requête est préparée et exécutée, et les résultats sont collectés dans un tableau.

  4. Réponse JSON : Le gestionnaire retourne une réponse JSON contenant les données des joueurs.

  5. Gestion des Erreurs : En cas d'erreur lors de l'exécution de la requête, une réponse JSON avec un message d'erreur est retournée.

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 lecture sur une base de données.

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