Skip to content

Instantly share code, notes, and snippets.

@smwhr
Last active November 13, 2019 11:21
Show Gist options
  • Save smwhr/1ad35a93f8002bcdbb35f3413ed38d51 to your computer and use it in GitHub Desktop.
Save smwhr/1ad35a93f8002bcdbb35f3413ed38d51 to your computer and use it in GitHub Desktop.
Énoncé Devoir ORM

Projet ORM

Date de rendu : 06/01/2020

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.

Consigne et critères de notation

Général
  • L'ORM doit être fonctionnel
  • L'ORM doit, a minima, supporter MySQL
Fonctionnalités attendues
Sélection
  • 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)
CRUD
  • Création, édition, suppression d'une ligne de donnée
Fonctions annexes
  • 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
Logging
  • 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
Documentation
  • 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)
BONUS
  • Un générateur en ligne de commande permettant de faciliter l'utilisation de votre ORM
  • Gestion des relations

Rendu

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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment