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.
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 ?