Bonsoir,

Je me pose plusieurs questions.

Imaginons trois classes.

La classe A dépend de la classe B qui dépend de la classe C qui dépend de la classe A.

Est-qu'il vaut mieux initialiser les classes dans les constructeurs, dans le pramarètre passé au constructeur, d'utilisé un setter ??

Est-qu'il peux arriver une sorte de récursion dans les objets ?

Exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
class A {
	private $var ;
 
	public function __construct(B $b) {
 
	}
}
 
 
class B {
	private $var ;
 
	public function __construct(C $c) {
 
	}
}
 
class C {
	private $var ;
 
	public function __construct(A $a) {
 
	}
}
ou bien

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class A {
	private $var ;
 
	public function __construct() {
		$this->var = new B() ;
	}
}
 
 
class B {
	private $var ;
 
	public function __construct() {
		$this->var = new C() ;
	}
}
 
class C {
	private $var ;
 
	public function __construct() {
		$this->var = new A() ;
	}
}
Ou encore

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class A {
	private $var ;
 
	public function __construct() {
 
	}
 
	public function setC(B $b) {
		$this->var = $b ;
	}
}
 
 
class B {
	private $var ;
 
	public function __construct() {
 
	}
 
	public function setC(C $c) {
		$this->var = $c ;
	}
}
 
class C {
	private $var ;
 
	public function __construct() {
 
	}
 
	public function setA(A $a) {
		$this->var = $a ;
	}
}
Par exemple si la classe A est un User, la classe B un Panier et la classe C un Produit.

Je veux être en mesure depuis un User de consulter le contenu du panier qui sera une métohde sowContenu() du panier mais appeler du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$user = new User() ;
$user->showContenu() ;
Et c'est à ce moment où je me demande comment récupérer cette méthode.

De même imaginons que la classe C soit des produits dans mon showPanier(), je veux récupérer la description de mes produits qui sera possible avec un getDescription() qui est une méthode de la classe Produit.

Et on peux très bien envisager une méthode de User qui est besoin d'un objet Article.

Et voila le serpent qui se mort la queue non ??

Qu'en pensez vous ?

Un retour d'expérience sur des projet mettant en relation de nombreuses classes serait le bienvenue.

Très bonne soirée à tous.

Fluxy__