Skip to content

Commit

Permalink
optimisation loaddata et Service.php
Browse files Browse the repository at this point in the history
  • Loading branch information
phoenixhackt committed Jan 4, 2024
1 parent f520162 commit 196a407
Show file tree
Hide file tree
Showing 2 changed files with 153 additions and 147 deletions.
18 changes: 18 additions & 0 deletions Les competitions/progressions/Fftt/Service.php
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,24 @@ public function getLicence($licence)
});
}

public function getLicenceAndProgression($licence)
{
// Récupérer les données de la licence et du joueur en utilisant la mise en cache
$licenceData = $this->getLicence($licence);
$joueurData = $this->getJoueur($licence);

// Vérifier si les deux ensembles de données ont été récupérés avec succès
if ($licenceData && $joueurData) {
// Fusionner les tableaux en privilégiant les données de joueur pour les clés en double
$combinedData = array_merge($licenceData, $joueurData);
} else {
// Si l'une des données n'est pas disponible, retourner null
return null;
}

return $combinedData;
}

protected function getCachedData($key, $lifeTime, $callback)
{
if (!$this->cache) {
Expand Down
282 changes: 135 additions & 147 deletions Les competitions/progressions/loaddata.php
Original file line number Diff line number Diff line change
@@ -1,158 +1,146 @@
<div>
<?php
// En-tête pour définir le type de contenu
header('Content-Type: text/html; charset=utf-8');

// Inclusion du fichier Service.php
require_once('Fftt/Service.php');

// Constantes pour les clés et les valeurs fixes
const MALE = 'M';
const FEMALE = 'F';
const TRADITIONNELLE = 'T';
const PROMOTIONNELLE = 'P';

// Remplacez ces valeurs par celles de votre application FFTT
$appId = 'SW927';
$appKey = 'uJ5d9P6NqG';

// Instancier la classe Service
$service = new Mping\CoreBundle\Fftt\Service($appId, $appKey);

// Initialiser l'utilisateur (à faire une fois)
$service->initialization();

// Remplacez NUMERO_CLUB par le numéro de votre club
$getJoueursByClub = $service->getJoueursByClub('08920067');

// Récupérez toutes les données dans un tableau
$allJoueurs = [];

foreach ($getJoueursByClub as $joueur) {
try {
$joueurDetails = $service->getLicence($joueur['licence']);
$joueurProg = $service->getJoueur($joueur['licence']);
} catch (Exception $e) {
// Gérer l'erreur et passer au joueur suivant en cas d'erreur
echo 'Une erreur est survenue lors du traitement des données.';
continue;
}

// Ajoutez le joueur avec les détails et la progression à votre tableau
$allJoueurs[] = [
'details' => $joueurDetails,
'progmois' => $joueurProg['progmois'],
'progann' => $joueurProg['progann']
];
}
<?php

// Inclusion du fichier Service.php
require_once('Fftt/Service.php');

// Constantes pour les clés et les valeurs fixes
const MALE = 'M';
const FEMALE = 'F';

// Remplacez ces valeurs par celles de votre application FFTT
$appId = 'SW927';
$appKey = 'uJ5d9P6NqG';

// Triez le tableau en fonction de la colonne de progression (décroissant)
array_multisort(array_column($allJoueurs, 'progann'), SORT_DESC, $allJoueurs);
// Instancier la classe Service
$service = new Mping\CoreBundle\Fftt\Service($appId, $appKey);

// Sélectionnez les 5 meilleurs joueurs pour la progression annuelle
$top5JoueursProgAnn = array_slice($allJoueurs, 0, 5);
// Initialiser l'utilisateur (à faire une fois)
$service->initialization();

// Triez le tableau en fonction de la colonne de progression (décroissant)
array_multisort(array_column($allJoueurs, 'progmois'), SORT_DESC, $allJoueurs);
// Remplacez NUMERO_CLUB par le numéro de votre club
$getJoueursByClub = $service->getJoueursByClub('08920067');

// Sélectionnez les 5 meilleurs joueurs pour la progression mensuelle
$top5JoueursProgMois = array_slice($allJoueurs, 0, 5);
?>
// Récupérez toutes les données dans un tableau
$allJoueurs = [];

<!-- Affichez le premier tableau -->
<h2>Joueurs</h2>
<table class="joueurs-table" id="joueurs-table-all">
<thead>
// Fonction pour formater le sexe
function formatSexe($sexe)
{
return ($sexe === MALE) ? '<p style="color: blue;">♂</p>' : '<p style="color: red;">♀</p>';
}

foreach ($getJoueursByClub as $joueur) {
try {
// Récupération combinée des détails de la licence et de la progression du joueur
$joueurDetails = $service->getLicenceAndProgression($joueur['licence']);
} catch (Exception $e) {
// Gérer l'erreur et passer au joueur suivant en cas d'erreur
echo 'Une erreur est survenue lors du traitement des données.';
continue;
}

// Ajoutez le joueur avec les détails et la progression à votre tableau
$allJoueurs[] = $joueurDetails;
}

// Triez le tableau en fonction de la colonne de progression annuelle (décroissant)
array_multisort(array_column($allJoueurs, 'progann'), SORT_DESC, $allJoueurs);

// Sélectionnez les 5 meilleurs joueurs pour la progression annuelle
$top5JoueursProgAnn = array_slice($allJoueurs, 0, 5);

// Triez le tableau en fonction de la colonne de progression mensuelle (décroissant)
array_multisort(array_column($allJoueurs, 'progmois'), SORT_DESC, $allJoueurs);

// Sélectionnez les 5 meilleurs joueurs pour la progression mensuelle
$top5JoueursProgMois = array_slice($allJoueurs, 0, 5);
?>

<!-- Affichez le premier tableau -->
<h2>Joueurs</h2>
<table class="joueurs-table" id="joueurs-table-all">
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Licence</th>
<th>Sexe</th>
<th>Classement</th>
<th>Catégorie d'âge</th>
<th>Progression Annuelle</th>
<th>Progression Mensuelle</th>
</tr>
</thead>
<tbody>
<?php foreach ($allJoueurs as $joueur) : ?>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Licence</th>
<th>Sexe</th>
<th>Classement</th>
<th>Catégorie d'âge</th>
<th>Progression Annuelle</th>
<th>Progression Mensuelle</th>
<td><?= $joueur['nom'] ?></td>
<td><?= $joueur['prenom'] ?></td>
<td><?= $joueur['licence'] ?></td>
<td><?= formatSexe($joueur['sexe']) ?></td>
<td><?= $joueur['point'] ?></td>
<td><?= $joueur['cat'] ?></td>
<td><?= $joueur['progann'] ?></td>
<td><?= $joueur['progmois'] ?></td>
</tr>
</thead>
<tbody>
<?php foreach ($allJoueurs as $joueur) : ?>
<tr>
<td><?= $joueur['details']['nom'] ?></td>
<td><?= $joueur['details']['prenom'] ?></td>
<td><?= $joueur['details']['licence'] ?></td>
<td><?= formatSexe($joueur['details']['sexe']) ?></td>
<td><?= $joueur['details']['point'] ?></td>
<td><?= $joueur['details']['cat'] ?></td>
<td><?= $joueur['progann'] ?></td>
<td><?= $joueur['progmois'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

<!-- Affichez le deuxième tableau -->
<h2>Top Progression de l'année</h2>
<table class="joueurs-table">
<thead>
<?php endforeach; ?>
</tbody>
</table>

<!-- Affichez le deuxième tableau -->
<h2>Top Progression de l'année</h2>
<table class="joueurs-table">
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Licence</th>
<th>Sexe</th>
<th>Classement</th>
<th>Catégorie d'âge</th>
<th>Progression Annuelle</th>
</tr>
</thead>
<tbody>
<?php foreach ($top5JoueursProgAnn as $joueur) : ?>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Licence</th>
<th>Sexe</th>
<th>Classement</th>
<th>Catégorie d'âge</th>
<th>Progression Annuelle</th>
<td><?= $joueur['nom'] ?></td>
<td><?= $joueur['prenom'] ?></td>
<td><?= $joueur['licence'] ?></td>
<td><?= formatSexe($joueur['sexe']) ?></td>
<td><?= $joueur['point'] ?></td>
<td><?= $joueur['cat'] ?></td>
<td><?= $joueur['progann'] ?></td>
</tr>
</thead>
<tbody>
<?php foreach ($top5JoueursProgAnn as $joueur) : ?>
<tr>
<td><?= $joueur['details']['nom'] ?></td>
<td><?= $joueur['details']['prenom'] ?></td>
<td><?= $joueur['details']['licence'] ?></td>
<td><?= formatSexe($joueur['details']['sexe']) ?></td>
<td><?= $joueur['details']['point'] ?></td>
<td><?= $joueur['details']['cat'] ?></td>
<td><?= $joueur['progann'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

<!-- Affichez le troisième tableau -->
<h2>Top Progression du mois</h2>
<table class="joueurs-table">
<thead>
<?php endforeach; ?>
</tbody>
</table>

<!-- Affichez le troisième tableau -->
<h2>Top Progression du mois</h2>
<table class="joueurs-table">
<thead>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Licence</th>
<th>Sexe</th>
<th>Classement</th>
<th>Catégorie d'âge</th>
<th>Progression Mensuelle</th>
</tr>
</thead>
<tbody>
<?php foreach ($top5JoueursProgMois as $joueur) : ?>
<tr>
<th>Nom</th>
<th>Prénom</th>
<th>Licence</th>
<th>Sexe</th>
<th>Classement</th>
<th>Catégorie d'âge</th>
<th>Progression Mensuelle</th>
<td><?= $joueur['nom'] ?></td>
<td><?= $joueur['prenom'] ?></td>
<td><?= $joueur['licence'] ?></td>
<td><?= formatSexe($joueur['sexe']) ?></td>
<td><?= $joueur['point'] ?></td>
<td><?= $joueur['cat'] ?></td>
<td><?= $joueur['progmois'] ?></td>
</tr>
</thead>
<tbody>
<?php foreach ($top5JoueursProgMois as $joueur) : ?>
<tr>
<td><?= $joueur['details']['nom'] ?></td>
<td><?= $joueur['details']['prenom'] ?></td>
<td><?= $joueur['details']['licence'] ?></td>
<td><?= formatSexe($joueur['details']['sexe']) ?></td>
<td><?= $joueur['details']['point'] ?></td>
<td><?= $joueur['details']['cat'] ?></td>
<td><?= $joueur['progmois'] ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>

<?php
// Fonction pour formater le sexe
function formatSexe($sexe)
{
return ($sexe === MALE) ? '<p style="color: blue;">♂</p>' : '<p style="color: red;">♀</p>';
}
?>
</div>
<?php endforeach; ?>
</tbody>
</table>

0 comments on commit 196a407

Please sign in to comment.