Page 1 sur 1

Vérification d'un attribut dans une classe

Posté : 27 avr. 2017, 13:00
par kevin254kl
Bonjour à tous,

J'ai une petit question, je fais une class mail ou j'ai donc mon attribut mail, j'aimerais savoir si la vérification de l'attribut se fait lors du setter en POO? par exemple

Code : Tout sélectionner

public function setTo($email, $name) { if($email = filter_var($email, FILTER_VALIDATE_EMAIL)) { $this->_to[] = $this->formatHeader((string) $email, (string) $name); return $this; } else { throw new Exception('Problem with email format'); } }
ici le filter var je ne devrais pas le faire lors de l'initialisation de l'attribut?

Merci à vous.

Re: Vérification d'un attribut dans une classe

Posté : 27 avr. 2017, 13:27
par moogli
salut,

il faut voir le reste de la classe mais un objet "nommé" (DTO, POJO ou POPO en php ;) ) ne doit servir qu'a contenir des données la validation en revient à des classes dédiées (les classes métiers).
Les DTO (Data Transport Object) ne servent que de conteneur aux données.

tu trouveras en java des solutions permettant de porter la validation sur les modèles mais cela se fait par annotations et c'est une classe de validation qui se charge de vérifier les données pas la classe elle même ;)


@+

Re: Vérification d'un attribut dans une classe

Posté : 28 avr. 2017, 09:34
par kevin254kl
Merci moogli,

Du coup je ne sais pas trop comment cela tourne. Je ne comprend pas trop le concept de classe métier? Pour moi il y a une vue un contrôleur, modèle pour les données, et une couche DAO.

Si j'ai un formulaire, il va vers mon controlleur puis la j'instancie mes modèles de données une fois fait j'utilise mon DAO pour stocker en base.
Les classes de validations je dois les instancier ou?

Merci de votre aide bonne journée.

Re: Vérification d'un attribut dans une classe

Posté : 28 avr. 2017, 10:21
par moogli
dans ton cas dans le contrôleur.
mais au bout du moment le contrôleur devient énorme et pas maintenable. Les outils de "qualimétrie" de code te diraient, en gros une classe c'est max 100 lignes, une méthode max 10 afin que le tout reste simple à maintenir.
Du coup on crée un peu plus de méthode et un peu plus de classe.

Par exemple le contrôleur sert d'aiguilleur il instancie les classes métier en fonction des pages demandées.
Généralement on met une interface sur ces classes pour avoir un code relativement générique, lorsque c'est possible.

ainsi, lorsque tu as besoin de modifier quelque chose de précis tu ne fouilles dans les 10000 lignes du contrôleur, tu va taper directement dans le fichier qui va bien :)

@+

Re: Vérification d'un attribut dans une classe

Posté : 29 avr. 2017, 22:39
par kevin254kl
Merci pour ces précisions.
J'ai regardé un peux sur les outils de "qualimétrie" je ne savais d'ailleurs pas que ça existait, vous en conseillez l'utilisation?

Bonne soirée.