Je pense que la solution que tu as mis en place, c'est de tester l'existence de chaque variable de $_POST avant de pousser dans la classe.
Or, cette méthode n'est pas très orienté objet.
Ce que je te conseillerais, c'est d'utiliser __set() pour mettre la vérification dans la classe, et de vérifier l'existence de l'attribut dans cette méthode.
Pour commencer, quelques explications sur __set() :
__set() est une méthode qui est appelée dès que fait appelles une méthode set*() qui n'existe pas dans ta classe.
pour reprendre l'exemple de ta classe, si tu fais
$a = new A();
$a->setA('A');
et que tu as une fonction de __set() définie, c'est cette dernière qui sera appelée.
Donc, si le corps de ta classe est le suivant :
class A
{
public function __set($property, $value)
{
if( // Vérification de l'existence de la propriété dans le code )
{
$this->$property = $value;
}
}
}
C'est franchement plus orienté plus objet, et tout aussi performant.
Je pense que la solution que tu as mis en place, c'est de tester l'existence de chaque variable de $_POST avant de pousser dans la classe.
Or, cette méthode n'est pas très orienté objet.
Ce que je te conseillerais, c'est d'utiliser __set() pour mettre la vérification dans la classe, et de vérifier l'existence de l'attribut dans cette méthode.
Pour commencer, quelques explications sur __set() :
__set() est une méthode qui est appelée dès que fait appelles une méthode set*() qui n'existe pas dans ta classe.
pour reprendre l'exemple de ta classe, si tu fais
[php]
$a = new A();
$a->setA('A');
[/php]
et que tu as une fonction de __set() définie, c'est cette dernière qui sera appelée.
Donc, si le corps de ta classe est le suivant :
[php]class A
{
public function __set($property, $value)
{
if( // Vérification de l'existence de la propriété dans le code )
{
$this->$property = $value;
}
}
}
[/php]
C'est franchement plus orienté plus objet, et tout aussi performant.