Travail pratique
ID : A13-TP07.4
But du TP
- Se familiariser avec le SGBD MySQL et le plugin Database dans IntelliJ IDEA
- Journaliser les erreurs
- Utiliser un fichier INI pour stocker les paramètres de l'application
- Mettre en oeuvre l'extension PDO
Travail à réaliser
Continuer le développement dans le projet du TP07.
Journalisation des erreurs
- Journaliser les erreurs et les exceptions pouvant se produire dans votre code source PHP, dans le fichier
error.log
qui se trouve dans le dossier/log
à la racine du projet.- Les problèmes de validation des données du formulaire d'inscription doivent également être journalisés.
- Ne faites, bien évidemment, pas de commit du contenu de ce fichier !
Fichier INI
- Ajoutez dans le fichier
config.ini
, qui se trouve dans le dossier/conf
à la racine du projet, l'ensemble des valeurs pour les paramètres de configuration (envoi d'email et base de données).- Utilisez les données de ce fichier dans votre code.
- Pour la configuration de votre base de données de votre VPS, utilisez l'utilisateur créé dans la partie 3 de ce TP.
- Ne faites, bien évidemment, pas de commit des valeurs des paramètres !
Base de données
- Créez un fichier
database.php
, dans votre dossier, permettant de gérer les interactions avec votre base de données MySQL.- Ex. :
/web/joel.dacomo/database.php
- Ex. :
- Dans ce fichier
database.php
, ajoutez des fonctions pour les actions suivantes :- Connexion à la base de données.
- Enregistrement des données d'une inscription (formulaire).
- Récupération des données pour les champs du formulaire (Sexe, Etat civil, Connaissances en informatique et Orientation envisagée).
- Remplacez le code qui enregistre les données du formulaire d'inscription dans le fichier CSV par des appels aux fonctions du fichier
database.php
. - Modifiez votre formulaire HTML pour utiliser les fonctions du fichier
database.php
afin de rendre les champs Sexe, Etat civil, Connaissances en informatique et Orientation envisagée, dynamiques (= construis selon les données disponibles dans la base de données). - Modifiez votre fichier
form-ctrl.php
afin de valider les données reçues pour les champs Sexe, Etat civil, Connaissances en informatique et Orientation envisagée selon les données disponibles dans la base de données.
Workflow Git
Utilisez le workflow Git Gitflow Workflow pour gérer les versions de votre code source et le partager entre vous.
- Respecter l'ensemble des règles, vues en cours, relatives aux messages de commit, aux conventions de nommage des branches et à la numérotation des versions.
Pour le workflow :
- Créez une branche
feature
par personne (ex.feature/database-joel.dacomo
). - Faites un "merge commit" (merge no-fast-forward) de votre branche
feature
dans la branchedevelop
une fois la page web complètement terminée. - Créez une branche
release
avec le bon numéro de version.- Chaque ajout d'une nouvelle feature (page personnelle) incrémente la version mineure du projet : 0.X.0 (ex.
release-0.3.0
).
- Chaque ajout d'une nouvelle feature (page personnelle) incrémente la version mineure du projet : 0.X.0 (ex.
- Dans la branche
release
, mettez à jour le fichierCHANGELOG.md
. - Pour terminer, faites un "merge commit" (merge no-fast-forward) de la branche
release
dans les branchesmaster
puisdevelop
(dans cet ordre). - A la fin du travail pratique, seules les branches
master
etdevelop
doivent exister surorigin
(plus de branchesfeature
ourelease
).
🚨 Pas de merge dans ou depuis les branches origin
, uniquement dans les branches locales !
- Si votre
push
ne passe pas surorigin
, faites unfetch
et résolvez les conflits (éventuellement faites unrebase
). - Evitez de faire un
pull
afin de ne pas générer demerge
inutile. - Utilisez "interactive rebase" pour repositionner, modifier, arranger vos
commits
dans votre branchefeature
, si besoin. - Utilisez les branches
hotfix
pour corriger les erreurs ou les oublis dans le code fusionné dans la branchemaster
.
Rendu du TP
Aucun rapport, manuel ou documentation n'est demandé pour ce travail pratique.
Le dernier commit sur Git doit être fait au plus tard le dimanche 5 janvier à 23h59.
La dernière version du site web doit avoir été mise en ligne sur votre VPS au plus tard le lundi 6 janvier à 13h.
Le TP sera évalué, entre autres, sur les critères suivants :
- Respect de toutes les consignes de ce document
- Utilisation correcte du workflow Git
- Commits respectant les règles vues ensemble
- Mises à jour correctes et pertinentes du changelog
- Numérotation correcte des versions
- Disponibilité de la dernière version du site web sur votre VPS
- Code source de qualité respectant tous les thèmes vus durant le cours
- Qualité du code PHP et son fonctionnement correct (inclus l'enregistrement des données dans la base de données, l'utilisation du fichier INI et la journalisation des erreurs).