src/App/ConfigProvider
Conditions d’achèvement
Ce fichier PHP définit la classe ConfigProvider pour un module d'application Mezzio. Cette classe est responsable de fournir la configuration du module, y compris les dépendances et les configurations de templates. Voici une explication détaillée avec des commentaires pour chaque section importante :
<?php
declare(strict_types=1);
namespace App;
/**
* Le fournisseur de configuration pour le module App
*
* Fournit une structure organisée pour la configuration du module.
*/
class ConfigProvider
{
/**
* Retourne le tableau de configuration
*
* Chaque section est définie dans une méthode séparée qui retourne
* un tableau avec sa configuration.
*/
public function __invoke(): array
{
return [
'dependencies' => $this->getDependencies(),
'templates' => $this->getTemplates(),
];
}
/**
* Retourne les dépendances du conteneur
*/
public function getDependencies(): array
{
return [
'invokables' => [
Handler\PingHandler::class => Handler\PingHandler::class,
// Définit PingHandler comme invokable (créé sans factory)
],
'factories' => [
Handler\HomePageHandler::class => Handler\HomePageHandlerFactory::class,
App\Handler\AddDataHandler::class => App\Handler\AddDataHandlerFactory::class,
App\Handler\ListPlayersHandler::class => App\Handler\ListPlayersHandlerFactory::class,
App\Handler\UpdatePlayerHandler::class => App\Handler\UpdatePlayerHandlerFactory::class,
App\Handler\UpdatePlayerByEmailHandler::class => App\Handler\UpdatePlayerByEmailHandlerFactory::class,
App\Handler\UpdateScoreByEmailHandler::class => App\Handler\UpdateScoreByEmailHandlerFactory::class,
// Associe chaque handler à sa factory correspondante
],
];
}
/**
* Retourne la configuration des templates
*/
public function getTemplates(): array
{
return [
'paths' => [
'app' => ['templates/app'],
'error' => ['templates/error'],
'layout' => ['templates/layout'],
// Définit les chemins vers les dossiers de templates
],
];
}
}
Ce fichier est essentiel pour la configuration du module dans une application Mezzio. Il définit comment les dépendances sont gérées (par exemple, quels handlers sont associés à quelles factories) et où se trouvent les templates. Cette structure permet une organisation claire et une gestion facile des différents composants du module.
Modifié le: jeudi 18 janvier 2024, 13:33