modifica : penso che l'iniezione di dipendenza sia l'approccio migliore.
Sto facendo fatica a comprendere la possibilità di condividere un oggetto tra due classi. Voglio essere in grado di creare solo un'istanza dell'oggetto, commonlib
nella mia classe main
e quindi avere le classi, foo1
e foo2
, per poter condividere reciprocamente le proprietà del commonlib. commonlib
è una classe di terze parti che ha una proprietà Queries
che sarà aggiunta a in ogni classe figlia di bar
. Questo è il motivo per cui è fondamentale creare solo un'istanza. Creo due query separate in foo1
e foo2
.
Questa è la mia configurazione:
abstract class bar{
//common methods
}
class foo1 extends bar{
//add query to commonlib
}
class foo2 extends bar{
//add query to commonlib
}
class main {
public $commonlib = new commonlib();
public function start(){
//goal is to share one instance of $this->commonlib between foo1 and foo2
//so that they can both add to the properites of $this->commonlib (global
//between the two)
//now execute all of the queries after foo1 and foo2 add their query
$this->commonlib->RunQueries();
}
}