Bonjour, ses encore moi... J'aimerais savoir votre "point de vue", sur la validation des données postées par l'utilisateur.
En effet, j'aimerais comprendre comment fonctionne le système de validation de Cakephp qui est aussi disponible hors du coeur de l'application Cakephp...
Je m'explique, imaginons un espace membre, simple et basique, deux pages une pour la connexion, l'autre pour l'inscription.
On va y retrouver donc deux champs similaires, par exemple : Pseudonyme, et Mot de passe, dans mon cas je ne veux pas que ses champs soient vides alors je fais un
$validator = new Validator();
$validator->notEmpty('pseudonyme')->notEmpty('password');
Jusque-là vous allez me dire... rien de nouveau mais pour ma seconde page... Je vais répéter ce code !
Et l'idée de me répéter me plaît pas trop, j'aimerais donc savoir s'il serait possible de faire une classe qui "analyse" les données postés, et qui les compares suivant le champ envoyé.
Je m'explique avec un petit exemple.
UserValidator.php :
<?php
use Cake\Validation\Validator;
Class UserValidator extends Validator {
private $datas = [];
public function __construct(array $datas = []) {
parent::__construct();
$this->datas = $datas;
}
public function _postPseudonyme() {
$this->notEmpty($this->data['pseudonyme']);
}
public function _postPassword() {
$this->notEmpty($this->data['password']);
}
}
Connexion.php
<?php
$validator = new UserValidator($_POST);
if(!empty($validator->errors($_POST))) {
die('Des erreurs sont survenu');
} else {
die('Très bien, tout est remplie!');
}
Le principe et en fait simple d'apparence pour mon cerveau, mais je ne sais pas comment je pourrais faire afin de rendre cela propre et surtout "automatique", car si j'ai _postEmail(); mais que celui-ci n'est valide que sur la page inscription, alors notre classe le devinera grâce aux données postées (si John doe à poster email alors on vérifie, sinon ont ne fait rien).
Voilà, je pense avoir été assez claire sur ma question, en espérant que vous avez réussi à me comprendre.
Merci.