Je viens d'avoir un cas qui ne m'ai encore jamais arrivé et comme je suis assé nul en POO je solicite votre aide.
Comment intégrer une méthode d'une instantation de A dans une classe B ?
plutot que de faire du bidon, mieux vaut faire du concret :
class Roue { var $diametre; var $couleur;
function rouler($vitesse){ echo "Roue::rouler($vitesse)n"); } }
class Voiture{ var $roue;
function Voiture(){ echo "Voiture::constructeurn"; $this->roue = new Roue(); }
function rouler($vitesse){ $this->roue->rouler($vitesse); } }
$v = new Voiture(); $v->rouler(90);
ca devrait globalement fonctionner, je ne sais pas si ce style d'intégration qu'on appelle agregation répond a ta demande ?
--
Laurent Seguin
Ronnie Garcia , le 26 oct. 2004 21:32:33, écrivait ceci:
Je viens d'avoir un cas qui ne m'ai encore jamais arrivé et comme je suis assé nul en POO je solicite votre aide.
Comment intégrer une méthode d'une instantation de A dans une classe B ?
exemple bidon : ---------------
require_once(class_A.php); $MonA = new A();
class B { var unevar = ""; [...] function truc() { [...] print($MonA->methode($this->unevar)); // Et la ça veut pas, pourquoi ? } [...] }
A n'en voir que ce bout de code, MonA n'est pas connu de la methode B::truc().
Non... Mais je pensais (bêtement ?) que les objets étaient instantiés en global, donc je me suis dit que je pouvais placer $MonA->methode() ou je voulais...
Ne peux tu pas passer une référence en argument ?
Pas con... Si je fais une dérivée de B (je ne peux me permettre de toucher à la classe initiale) ça doit être jouable.
J'essayerais demain matin :-)
--
Ronnie Garcia <ronnie@INVERSE.net.mk2>, le 26 oct. 2004 21:32:33,
écrivait ceci:
Je viens d'avoir un cas qui ne m'ai encore jamais arrivé et comme je
suis assé nul en POO je solicite votre aide.
Comment intégrer une méthode d'une instantation de A dans une classe
B ?
exemple bidon :
---------------
require_once(class_A.php);
$MonA = new A();
class B {
var unevar = "";
[...]
function truc() {
[...]
print($MonA->methode($this->unevar)); // Et la ça veut pas, pourquoi
? }
[...]
}
A n'en voir que ce bout de code, MonA n'est pas connu de la methode
B::truc().
Non... Mais je pensais (bêtement ?) que les objets étaient instantiés en
global, donc je me suis dit que je pouvais placer $MonA->methode() ou je
voulais...
Ne peux tu pas passer une référence en argument ?
Pas con... Si je fais une dérivée de B (je ne peux me permettre de toucher
à la classe initiale) ça doit être jouable.
Ronnie Garcia , le 26 oct. 2004 21:32:33, écrivait ceci:
Je viens d'avoir un cas qui ne m'ai encore jamais arrivé et comme je suis assé nul en POO je solicite votre aide.
Comment intégrer une méthode d'une instantation de A dans une classe B ?
exemple bidon : ---------------
require_once(class_A.php); $MonA = new A();
class B { var unevar = ""; [...] function truc() { [...] print($MonA->methode($this->unevar)); // Et la ça veut pas, pourquoi ? } [...] }
A n'en voir que ce bout de code, MonA n'est pas connu de la methode B::truc().
Non... Mais je pensais (bêtement ?) que les objets étaient instantiés en global, donc je me suis dit que je pouvais placer $MonA->methode() ou je voulais...
Ne peux tu pas passer une référence en argument ?
Pas con... Si je fais une dérivée de B (je ne peux me permettre de toucher à la classe initiale) ça doit être jouable.
J'essayerais demain matin :-)
--
marc.quinton-PAS-DE-
Non... Mais je pensais (bêtement ?) que les objets étaient instantiés en global, donc je me suis dit que je pouvais placer $MonA->methode() ou je voulais...
si le probleme est juste un soucis de visibilité de variable globale, ceci devrait fonctionner :
require_once(class_A.php); $MonA = new A();
class B { var unevar = "";
function truc() {
global $MonA; print($MonA->methode($this->unevar)); // Et la ça veut pas, pourquoi ? } }
--
Non... Mais je pensais (bêtement ?) que les objets étaient instantiés en
global, donc je me suis dit que je pouvais placer $MonA->methode() ou je
voulais...
si le probleme est juste un soucis de visibilité de variable globale,
ceci devrait fonctionner :
require_once(class_A.php);
$MonA = new A();
class B {
var unevar = "";
function truc() {
global $MonA;
print($MonA->methode($this->unevar)); // Et la ça veut pas, pourquoi ?
}
}
Non... Mais je pensais (bêtement ?) que les objets étaient instantiés en global, donc je me suis dit que je pouvais placer $MonA->methode() ou je voulais...
si le probleme est juste un soucis de visibilité de variable globale, ceci devrait fonctionner :
require_once(class_A.php); $MonA = new A();
class B { var unevar = "";
function truc() {
global $MonA; print($MonA->methode($this->unevar)); // Et la ça veut pas, pourquoi ? } }
--
Laurent Seguin
Marc , le 27 oct. 2004 00:55:07, écrivait ceci:
Comment intégrer une méthode d'une instantation de A dans une classe B ?
plutot que de faire du bidon, mieux vaut faire du concret : [...]
ca devrait globalement fonctionner, je ne sais pas si ce style d'intégration qu'on appelle agregation répond a ta demande ?
Oui parfait :-) Par contre, je n'ai pas eu besoin de redéfinir la méthode rouler() dans Voiture...
Si t'as une doc la dessus je suis preneur :-)
--
Marc <__quinton__@free.fr>, le 27 oct. 2004 00:55:07, écrivait ceci:
Comment intégrer une méthode d'une instantation de A dans une classe
B ?
plutot que de faire du bidon, mieux vaut faire du concret :
[...]
ca devrait globalement fonctionner, je ne sais pas si ce style
d'intégration qu'on appelle agregation répond a ta demande ?
Oui parfait :-)
Par contre, je n'ai pas eu besoin de redéfinir la méthode rouler() dans
Voiture...
Par contre, je n'ai pas eu besoin de redéfinir la méthode rouler() dans Voiture...
Si t'as une doc la dessus je suis preneur :-)
heuu, que recherches tu exactement ?
Ben je sais pas justement :-/ Genre ça : http://hachesse.developpez.com/objetphp/ Mais en plus complet et qui va plus loin.
--
marc.quinton-PAS-DE-
Laurent Seguin wrote:
Ben je sais pas justement :-/ Genre ça : http://hachesse.developpez.com/objetphp/ Mais en plus complet et qui va plus loin.
tu veux parler :
- du langage php, - de la terminologie objet : (agregation, héritage, interface) - de la mise en oeuvre, d'exemples concrets pour bien démarrer ?
ca me rappel un cours Java ou nous avions réalisé les fonctions de bases d'un monopoly. L'exercice était assez intéressant et casse tete pour une personne non habituée a la conception objet.
Il y avait une specification des regles du jeu. Le plus intéressant c'est que les specs étaient enrichies progressivement. Et la structure des classes étant bien construites a la base permettait de s'y adapter sans soucis. Je crais que nous aurions eu quelques difficultés en programmation traditionnelle.
J'aimerai bien retrouver le contenu de cet exercice. On devrait pouvoir le réaliser sans probleme en php. Il n'y avait pas de graphisque, juste des messages textuels ...
Pour info, la société de formation, c'est ... (ca commence par un L, et contient le mot arbre et apprentissage en anglais).
Laurent Seguin wrote:
Ben je sais pas justement :-/
Genre ça : http://hachesse.developpez.com/objetphp/
Mais en plus complet et qui va plus loin.
tu veux parler :
- du langage php,
- de la terminologie objet : (agregation, héritage, interface)
- de la mise en oeuvre, d'exemples concrets pour bien démarrer ?
ca me rappel un cours Java ou nous avions réalisé les fonctions
de bases d'un monopoly. L'exercice était assez intéressant et
casse tete pour une personne non habituée a la conception objet.
Il y avait une specification des regles du jeu. Le plus intéressant
c'est que les specs étaient enrichies progressivement. Et la
structure des classes étant bien construites a la base permettait
de s'y adapter sans soucis. Je crais que nous aurions eu quelques
difficultés en programmation traditionnelle.
J'aimerai bien retrouver le contenu de cet exercice. On devrait
pouvoir le réaliser sans probleme en php. Il n'y avait pas de
graphisque, juste des messages textuels ...
Pour info, la société de formation, c'est ... (ca commence par
un L, et contient le mot arbre et apprentissage en anglais).
Ben je sais pas justement :-/ Genre ça : http://hachesse.developpez.com/objetphp/ Mais en plus complet et qui va plus loin.
tu veux parler :
- du langage php, - de la terminologie objet : (agregation, héritage, interface) - de la mise en oeuvre, d'exemples concrets pour bien démarrer ?
ca me rappel un cours Java ou nous avions réalisé les fonctions de bases d'un monopoly. L'exercice était assez intéressant et casse tete pour une personne non habituée a la conception objet.
Il y avait une specification des regles du jeu. Le plus intéressant c'est que les specs étaient enrichies progressivement. Et la structure des classes étant bien construites a la base permettait de s'y adapter sans soucis. Je crais que nous aurions eu quelques difficultés en programmation traditionnelle.
J'aimerai bien retrouver le contenu de cet exercice. On devrait pouvoir le réaliser sans probleme en php. Il n'y avait pas de graphisque, juste des messages textuels ...
Pour info, la société de formation, c'est ... (ca commence par un L, et contient le mot arbre et apprentissage en anglais).
marc.quinton-PAS-DE-
Laurent Seguin wrote:
Ben je sais pas justement :-/ Genre ça : http://hachesse.developpez.com/objetphp/ Mais en plus complet et qui va plus loin.