Je me demande quelles sont les meilleures pratiques/recommandations ici. Supposons que j'ai une classe fournissant des fonctions manipulant un XMLElement.Où la validation des paramètres devrait-elle avoir lieu pour éviter la duplication du code
class Foo
{
private $data;
public function setData(\SimpleXMLElement $data): void
{
$this->data = $data;
}
public function getElement():string
{
return $this->data->element;
}
}
La classe est utilisée dans une autre classe comme ceci:
class Bar
{
public function fooBar(string $data)
{
$xml = new \SimpleXMLElement($data);
$foo = new Foo();
$foo->setData($xml);
echo $foo->getElement();
}
}
Si les deux setData()
et fooBar()
valider leurs paramètres?
Ou est-ce OK si seulement fooBar()
valide son paramètre?
Ou la fonction appelant foobar()
doit-elle valider son paramètre?
Donc la classe User dépend entièrement de la classe EmailAddress pour faire la validation? – dev0
L'idée serait que vous ne pouvez créer qu'une entité 'EmailAddress 'valide. Si vous tentez d'en créer un invalide, il déclenche une exception. Cela se résume à ceci: la validation de l'adresse email n'est pas une responsabilité de l'entité utilisateur. C'est et externe * problème domaine *. –