Déclaration des variables

Par Ludo46, il y a 9 ans


Bonjour,

Je suis entrain de me développer un petit framework afin d'améliorer mes compétences et je souhaite, à un moment, déclarer des variables "protégées" automatiquement.

Vous trouverez ci-dessous un exemple de code :

class Model { public function __construct(array $databases) { foreach ($databases as $name => $param) $this->$name = new Database($param); } } class MonModel extends Model { } $databases = [ "db1" => [...], // Diverses informations sur la connexion "db2" => [...], "db3" => [...] ]; $monModel = new MonModel($databases);

Voilà le "code de base" et lorsque je fais un var_dump() de $monModel, j'obtiens :

object(MonModel)[12] public 'db' => object(Database)[13]

Ma question est : Peut-on déclarer AUTOMATIQUEMENT une variable en "protected" au lieu de public ?

Je vous remercie d'avoir lu et éventuellement de votre réponse.

PS: Si jamais vous ne trouvez pas ça assez claire, faite le moi savoir, je tâcherai de me rendre un peu plus précis.

1 réponse

AlexJM, il y a 9 ans

Je pense pas que tu peux faire comme tu le souhaite. Qui plus-est, ce n'est pas très propre de ne pas définir des variables.

Tu ne pourrais pas faire genre :

class Model { protected $dbs = []; public function __construct(array $databases) { foreach ($databases as $name => $param) $this->dbs[$name] = new Database($param); } } class MonModel extends Model { } $databases = [ "db1" => [...], // Diverses informations sur la connexion "db2" => [...], "db3" => [...] ]; $monModel = new MonModel($databases);

Et utiliser la surcharge de propriétés (http://php.net/manual/fr/language.oop5.overloading.php) pour y accéder si tu ne veux pas accéder par le tableau ?