Actuellement, j'ai un objet BaseObject qui fait ORM à DB. Je me fie aux données $ privées et au setter magique et à getter pour créer un objet avec un tas de colonnes en tant que membre d'objet privé (dynamiquement). Dans la classe enfant, si je veux modifier le comportement pour définir un membre d'objet individuel, je dois surpasser parent setter et rechercher la clé. Ma question est de savoir s'il y a une meilleure façon de le faire où je pouvais remplacer seul membre de l'objet plutôt passer par __setterComment remplacer le paramètre après setter magique et getter dans php
base de l'objet Mapper qui la carte à db et créer dynamiquement tas de params privés
class Base
{
private $data = array();
public function __construct(){
//get columns info from db and do set
}
public function __set($key, $value){
$this->data[$key] = $value;
}
public function __get($key){
return isset($this->data[$key])? $this->data[$key] : null;
}
}
et classe enfant. En ce moment pour remplacer réglage des paramètres que je dois faire ce
class Child extends Base
{
public function __set($name, $value){
if($name == 'dog' && $value == 'chihuahua')
$this->dog = 'dog bark wolf wolf';
else if($name == 'cat' && $value == 'sand')
$this->cat = 'cat say meow meow';
...
}
}
ma question est là façon élégante de le faire, peut-être quelque chose comme ça dans la classe des enfants?
public function __set_dog($value)
$this->dog = 'dog bark wolf wolf';
public function __set_cat($value)
$this->cat = 'cat say meow meow';
le but est de faire
$animal1 = new Animal();
$anmial1->dog = 'pit bull';
$anmial1->cat= 'sand';
$animal2 = new Animal();
$anmial1->dog = 'chihuahua';
$anmial1->cat= 'house cat';
Pourriez-vous passer un peu plus de texte sur ce que vous essayez d'accomplir? Je n'ai absolument aucune idée de ce que vous essayez de faire. – Jasper
En ce moment j'ai un BaseObject qui fait ORM à DB. Je me fie aux données $ privées et au setter magique et à getter pour créer un objet avec un tas de colonnes en tant que membre d'objet privé (dynamiquement). Dans la classe enfant, si je veux modifier le comportement pour définir un membre d'objet individuel, je dois surpasser parent setter et rechercher la clé. Ma question est de savoir s'il y a une meilleure façon de le faire où je pourrais simplement passer outre un membre d'objet unique plutôt que de passer par __setter. Merci d'avance – user332951
Si le membre de l'objet est privé, non, vous ne pouvez rien faire d'autre. –