J'ai des problèmes pour créer un "super objet" (similaire à celui de CodeIgniter) pour un projet de framework sur lequel je travaille. Je veux créer un super objet que toutes mes autres classes vont parcourir. Je l'ai fait, mais il semble que je suis incapable d'utiliser l'objet de mon objet super dans chacune de mes classes sans utiliser le mot clé global dans chaque fonction.Problème de portée variable avec super objet
J'ai quelque chose comme ceci:
class a
{
function aa()
{
return 'class a';
}
}
class b
{
function bb()
{
$blah->a->aa();
}
}
class superobj
{
function loadClass($class)
{
$this->$class = new $class;
}
}
class blah extends superobj
{
function __construct()
{
$this->loadClass('a');
$this->loadClass('b');
}
}
$blah = new $blah;
Donc, si je cours, j'obtiens une erreur parce que je ne peux pas accéder à la méthode aa. Si je mets global $ bla dans la méthode bb, alors ça marche (ou du moins dans mon vrai projet ça marche, je ne sais pas à propos de cette maquette de 5 secondes hehe).
Alors est-il possible de rendre l'objet $ blah global de sorte que je n'ai pas besoin de le référencer pour chaque méthode, OU existe-t-il un meilleur moyen de réaliser ce que j'essaie de faire?
Je ne suis pas très bon à POO ...
duplication possible: http://stackoverflow.com/questions/1234445/php-global-variables – thomaspaulb