<?php

// config/autoload/dependencies.global.php

use Laminas\Db\Adapter\Adapter;
// Importe la classe Adapter de Laminas\Db\Adapter

return [
    // Définit les dépendances pour l'application
    'dependencies' => [
        // Configure les factories pour les différentes classes
        'factories' => [
            Adapter::class => Laminas\Db\Adapter\AdapterServiceFactory::class,      
            // Associe la classe Adapter à son factory de service
            Handler\HomePageHandler::class => Handler\HomePageHandlerFactory::class,
            // Associe HomePageHandler à son factory
            App\Handler\AddDataHandler::class => App\Handler\AddDataHandlerFactory::class,
            // Associe AddDataHandler à son factory
            App\Handler\ListPlayersHandler::class => App\Handler\ListPlayersHandlerFactory::class,
            // Associe ListPlayersHandler à son factory
            App\Handler\UpdatePlayerHandler::class => App\Handler\UpdatePlayerHandlerFactory::class,    
            // Associe UpdatePlayerHandler à son factory
            App\Handler\UpdatePlayerByEmailHandler::class => App\Handler\UpdatePlayerByEmailHandlerFactory::class,
            // Associe UpdatePlayerByEmailHandler à son factory
            App\Handler\UpdateScoreByEmailHandler::class => App\Handler\UpdateScoreByEmailHandlerFactory::class,
            // Associe UpdateScoreByEmailHandler à son factory
        ],
    ],
];

 

  1. Déclaration de l'espace de noms et importation de classes :

    php
    use Laminas\Db\Adapter\Adapter;

    Cette ligne importe la classe Adapter depuis l'espace de noms Laminas\Db\Adapter. Adapter est probablement utilisé pour interagir avec une base de données.

  2. Retour d'un tableau de configuration : Le code retourne un tableau associatif PHP, qui est une manière courante de configurer des applications PHP, en particulier celles utilisant des frameworks.

  3. Configuration des dépendances :

    php
    'dependencies' => [ 'factories' => [ // ... ], ],

    Cette section configure les services et leurs dépendances. Dans Mezzio et Laminas, les dépendances sont souvent gérées par un conteneur de services, et ce tableau définit comment ces services sont créés.

  4. Factories pour les classes : Chaque entrée sous 'factories' associe une classe à une "factory" spécifique. Une factory est une classe ou une fonction responsable de la création d'une instance de la classe spécifiée. Par exemple :

    php
    Adapter::class => Laminas\Db\Adapter\AdapterServiceFactory::class,

    Ici, Adapter::class est associé à Laminas\Db\Adapter\AdapterServiceFactory::class. Cela signifie que lorsque le conteneur de services a besoin de créer une instance de Adapter, il utilisera AdapterServiceFactory pour le faire.

  5. Configuration des Handlers : Les lignes suivantes configurent différents "handlers" (gestionnaires) pour l'application. Un handler dans Mezzio est généralement un composant qui traite une requête HTTP spécifique. Par exemple :

    php
    Handler\HomePageHandler::class => Handler\HomePageHandlerFactory::class,

    Cette ligne indique que pour créer une instance de HomePageHandler, le système doit utiliser HomePageHandlerFactory.

  6. Handlers pour différentes fonctionnalités : Les autres lignes similaires configurent des handlers pour différentes routes ou fonctionnalités de l'application, comme l'ajout de données, la liste des joueurs, la mise à jour des informations des joueurs, etc.

En résumé, ce fichier de configuration est crucial pour définir comment les différentes parties de l'application Mezzio sont instanciées et gérées. Il lie les classes aux factories correspondantes, permettant au conteneur de services de l'application de créer des instances de ces classes lorsque nécessaire.

 
Modifié le: jeudi 18 janvier 2024, 10:22