Мне нужно отследить, какой экземпляр создал другой экземпляр. Это иерархия экземпляров, а не иерархия родительско-дочерних классов. Вот пример:
class Car{
private var $engine;
private var $id;
public function __construct(){
$this->id = nextId();
$this->engine = new Engine(500);
}
}
class Engine{
private var $horsepower;
private var $id;
public function __construct($hp){
$this->id = nextId();
$this->horsepower = $hp;
}
}
если я это сделаю:
$myCar1 = new Car();
$myEngine = new Engine(200);
В настоящее время у меня есть 1 экземпляр автомобиля и 2 двигателя. Мне нужно знать, какой экземпляр создан, какой экземпляр. как то так:
$creator = instanceCreatorOf($myCar1->engine or $myCar1->engine->id);
вернет: $ myCar или $ myCar-> id;
но если я сделаю:
$creator = instanceCreatorOf($myEngine or $myEngine->id);
вернет: корень или ноль или 0;
Мне нужно отслеживать это, но имея много динамически создаваемых объектов, мне нужно динамическое отслеживание этой иерархии. Есть идеи?
Спасибо!