class Foo { public $x; public function __construct() { $this->x = new X($this); //var_dump($this->x); } public function footest() { return $this->x->test(); } } class X { public function __construct(Foo $c) { //echo '<pre>'; // print_r($c); } public function test() { return 'Xtest'; } } $a = new Foo;
Czy to jest poprawna kompozycja i czy kompozycje polegają a tym, aby klasa X która ma jakieś ważne dane dla klasy Foo nie mogłaby mieć własnej instancji?
Czyli jeśli mam klasę Login która ma pobierać dane z klasy User, która sprawdza użytkownika, to klasa User ma w konstruktorze mieć klasę Login?
Nie bardzo ogarniam samo określenie kompozycji i to gdzie i w jakich przypadkach je stosować, a nigdzie nie znalazłem konkretnego wyjaśnienia, w języku PL w ogóle ich nie ma. Są tylko przykłady, jak powyższy ale nic poza tym.