1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
<?php
class Validator {
const CHECK_REQUIRED = 'isRequired';
const CHECK_ISALPHAM = 'isAlphaM';
private $newData = []; // variable qui stockera les nouvelles données validées et nettoyées
private $form; //variable qui stockera l'OBJET issu de l'instanciation de la class Rules_SignUP
private $errors = [];
public function __construct($form, $post) {
$this->form = $form;
$this->newData = $post;
}
public function isRequired($value){
if(!empty(trim($value))) {
return $value;
} else {
return false;
}
}
public function isAlphaM($value){
$value = $this->($value);
if (!preg_match('/^[A-Z\'-_]{2,30}$/', $value)) {
return false;
} else {
return $value;
}
}
public function isValid() {
return empty($this->errors);
}
public function getErrors() {
return $this->errors;
}
public function getNewData() {
return $this->newData;
}
public function validate() {
foreach ($this->form->getField() as $name => $rules) // ON BOUCLE SUR LES CHAMPS -> $name -> règles ($rules[] => 1 ou ++ constantes)
{
// echo " Index du champ : " .$name. "<br>";
foreach($rules as $rule) // ON BOUCLE SUR $rules[] ($rule = 1 constante = une règle )
{
//echo " - règle(s) de validation : " .$rule. "<br>";
//MANQUE A LANCER LES TESTS ????? SI VOUS AVEZ UNE PROPOSITION
//$this->newData = $this->{$rule};
if ($this->newData == false){ // chaque règle retourne $value de $name en cas de succès sinon FALSE en cas d'erreur de validation
$this->errors[] = 'KO';
} else {
$this->newData[$name] = $this->newData; // on stocke chaque champ validé et sécurisé dans la variable générale $newData = [],
}
}
}
/*foreach ($this->newData as $name => $value) { // pour moi
echo " index du champ du POST est : " .$name. "   -   et sa valeur est : " .$value. "<br>";
//$name = $this->{$rule};
} */
}
public function hydrate (array $donnees) {
foreach ($donnees as $key => $value) {
$setter = 'set'.ucfirst($key);
if (method_exists($this, $setter)){
$this->$setter($value);
}
}
} |
Partager