Voici un cahier des charges complet et structuré pour la réalisation du visualisateur de personnages Donjons & Dragons en PHP.
Développer une petite application web avec PHP permettant de visualiser des personnages de type Donjons & Dragons (version simplifiée basée sur la 5e édition).
Utilise Bootstrap et ses composants pour améliorer le rendu visuel de ton application.
Lâapplication est constituĂ©e de 2 pages PHP avec un menu de navigation accessible en permanence.
| Page | URL | Description |
|---|---|---|
| Accueil | / |
Tableau affichant tous les personnages enregistrés |
| Fiche personnages | /perso?id=xxx |
Fiche affichant les informations sur un personnage |
Un menu fixe ou en haut de page permet d'accéder facilement aux sections:
Chaque ligne doit contenir :
Le bouton de visualisation doit contenir un lien qui pointe vers la page de... visualisation (perso.php). D'oĂč son nom đ
La fiche devrait ressembler à ceci (éventuellement à adapter en fonction des consignes):
Si tu as réussi à enregistrer les tests de caractéristiques dans la version Python du Créateur de personnages, tu peux les afficher ici.
Voici des fonctions prĂȘtes Ă l'emploi qui te permettront de lister et lire les fiches personnages créées par ton autre programme.
Idéalement, tu devrais les placer dans leur propre fichier PHP et les inclure dans tes pageà l'aide de require_once.
/**
* Fonction qui charge toutes les fiches personnage dâun dossier donnĂ©.
*
* Elle renvoie un tableau associatif :
* - la clé est le nom du fichier (ex : "actions.json")
* - la valeur est le contenu du fichier transformé en tableau PHP
*
* @param string $dossier Chemin vers le dossier (ex : "./data")
* @return array Tableau contenant les contenus de chaque fichier JSON
*/
function chargerTousLesPersonnages(string $dossier): array {
$resultat = []; // On prépare un tableau vide pour stocker les résultats
// Vérifie si le dossier existe vraiment
if (!is_dir($dossier)) {
return []; // Si ce nâest pas un dossier valide, on renvoie un tableau vide
}
// Recherche tous les fichiers qui se terminent par ".json" dans ce dossier
$fichiers = glob($dossier . DIRECTORY_SEPARATOR . '*.json');
// Pour chaque fichier trouvé...
foreach ($fichiers as $cheminFichier) {
// On récupÚre le nom du fichier sans le chemin (ex : "mon_fichier.json")
$nomFichier = basename($cheminFichier);
// On utilise la fonction ci-dessous pour lire le contenu du fichier
$donnees = chargerFichePersonnage($cheminFichier);
// Si la lecture du fichier a rĂ©ussi (pas null), on lâajoute au tableau
if ($donnees !== null) {
$resultat[$nomFichier] = $donnees;
}
}
return $resultat; // On renvoie toutes les données chargées
}
/**
* Fonction qui lit un fichier JSON précis et transforme son contenu en tableau PHP.
*
* @param string $chemin Chemin complet vers le fichier (ex : "./data/mon_fichier.json")
* @return array|null Un tableau si tout sâest bien passĂ©, sinon null
*/
function chargerFichePersonnage(string $chemin): ?array {
// VĂ©rifie que le fichier existe et quâil est lisible
if (!file_exists($chemin) || !is_readable($chemin)) {
return null;
}
// Lit tout le contenu du fichier dans une chaĂźne de caractĂšres
$contenu = file_get_contents($chemin);
// Transforme le texte JSON en tableau PHP (le "true" signifie : tableau associatif)
$donnees = json_decode($contenu, true);
// VĂ©rifie si le dĂ©codage sâest bien passĂ© (sinon il y a une erreur)
if (json_last_error() !== JSON_ERROR_NONE) {
return null; // Erreur de format JSON â on ne garde pas ce fichier
}
return $donnees; // On renvoie les données correctement lues
}
// ======= EXEMPLES DâUTILISATION (Ă activer si besoin) =======
// Charger tous les fichiers JSON dâun dossier "data"
$liste = chargerTousLesFichiersJson(__DIR__ . '/data');
print_r($liste);
// Charger un seul fichier JSON
$unFichier = chargerFichierJson(__DIR__ . '/data/mon_fichier.json');
print_r($unFichier);