[POO] Structurer une classe
Bonjour,
Imaginons que j'ai une application PHP qui génère des documents PDF de différents types (facture, devis, rappels, cartes postales, etc...). Tous ces documents ont une base commune, comme l'adresse, la référence du client et même à un niveau plus technique la façon dont ils sont créés.
L'idée serait donc de créer une classe CDoc, qui contiendrait les méthodes et propriétés communes à tous les types de documents possibles, puis de créer des classes dérivés héritant de CDoc et auxquels ont rajoute leurs informations propres.
Reste à voir comment on fait ça "bien"...
1 - en BDD, ai-je raison de créer une table doc (qui contient les infos que l'on retrouve dans tous les soustypes de documents) et une table pour chaque sous type de document (facture, devis, mots_doux, ...) ? Si tel est le cas, dans quel sens est-il le plus judicieux de créer la relation père-fils ? le sous-type appel t-il doc, ou doc doit-il appeler le sous type correspondant (sachant qu'il faut alors un flag de sous-type dans doc) ?
2 - a l'utilisation, comment instancier mes class en fonction du type ? Faut-il appeler directement le constructeur du sous-type ou existe t-il un moyen d'appeler le constructeur de CDoc et d'instancier la class dérivée adaptée depuis CDoc ?
En vous remerciant d'avance.