Question d'ordre générale sur la POO

Eléphant du PHP | 129 Messages

11 avr. 2021, 14:32

Au risque d'avoir l'air imbécile, je vais quand même poser ma question. Je suis en train de faire une application et plusieurs sections fonctionnent bien et maintenant je suis bloqué. Je commence à me demander si ce n'est pas parce je suis parti tout croche. Je vais poser ma question de manière générale, mais je crois que ça pourrait m'aiguiller pour la suite.

J'essaie de travailler pour la première fois avec le modèle MVC. Est-ce que le M est supposé être le parent du V et du C ou si chaque classe a son MVC et que certaines classes sont des parents de d'autres? Ce qui me pose problème c'est que si c'est la première option qui est la bonne, ça veut dire que si j'ai un un objet de la classe parent "M"(...exemple : fruit) dans laquelle il y a une propriété $A(...disons $couleur) et que j'attribue une valeur à cette propriété (A$.....disons rouge) dans un objet de la classe fille "C" (.....disons fraise). Comment je peux aller modifier la valeur de l'objet parent (fruit couleur = rouge) sans passer directement par l'objet "parent" qui est le "M" avec lequel l'utilisateur n'est pas supposé interagir? Si je passe par une méthode du "C" (ex. fraise est rouge), quand j'écris $this-> setCouleurVariable = "???", c'est sa propriété à lui qui est modifiée, pas celle de l'objet parent (fruit) même si la méthode est dans la classe parent....

En plus clair,
classe "parent" (Modèle) fruit avec $A non défini...
classe "fille" (Contrôle) fraise avec $A="rouge"
comment passer "rouge" à un objet fruit avec la méthode MVC?

Avatar du membre
Mammouth du PHP | 1384 Messages

12 avr. 2021, 13:58

Salut, ta question semble ne pas avoir de sens. A priori dans le code tu crées une instance de classe et tu manipules cette instance. L'instance n'a pas une valeur pour la propriété A du parent et une valeur pour la propriété A de l'enfant, l'instance a seulement une propriété A avec une valeur.
J'édite souvent mon message après avoir répondu pour le corriger où y apporter des informations complémentaires alors n'hésitez pas à y jeter un nouveau coup d'oeil ^^