Il s'agit d'implémenter d'après vos propres spécifications, un ORM.
On rappelle qu'un ORM (Object Relational Mapper) est une librairie permettant de représenter le contenu d'une base de donnée sous la forme d'objets dont les propriétés sont définies par le contenu de la base de donnée.
- L'ORM doit être fonctionnel
- L'ORM doit, a minima, supporter MySQL
- Sélection d'une ligne de donnée par id
- Sélection d'une liste (tout)
- Sélection partielle (conditions multiples)
- Sélection ordonnée (order by)
- BONUS : Sélection étendue (jointure)
- Création, édition, suppression d'une ligne de donnée
- Comptage sans sélection d'après une requête donnée (COUNT)
- Retour d'existence d'une donnée (exists)
- Caster les valeurs dans leur bon type
- Log de toutes les requêtes effectuées (heure, requête, paramètres, temps de requête) dans un fichier request.log
- Log de toutes les erreurs éventuelles (heure, requête, paramètres, erreur) dans un fichier error.log
- Une documentation permettant d'utiliser l'ORM (installation, usage, etc...) : cette documentation pourra être générée automatiquement ou écrite par vos soin (fournir un lien)
- Un dossier contenant un exemple d'utilisation de l'ORM (du type que nous avons fait en classe pour des ORM connus)
- Un générateur en ligne de commande permettant de faciliter l'utilisation de votre ORM
- Gestion des relations
Le projet devra être rendu au plus tard avant les 12 coups de minuit (sinon le projet se transforme en citrouille).
Le projet devra être rendu sur un repository git et accessible en lecture au moins par le professeur (smwhr / julien@troisyaourts.com)