LauraBokkers / educom-webshop-database-1697464342

0 stars 0 forks source link

Sommige code wordt op meerdere plekken gedefinieerd, dit is niet D.R.Y. #17

Open JeroenHeemskerk opened 11 months ago

JeroenHeemskerk commented 11 months ago

Onderstaande code https://github.com/LauraBokkers/educom-webshop-database-1697464342/blob/24207b770b2e688a311efd9eeb2fbbaf0270d22f/validations.php#L15-L23 lijkt veel op https://github.com/LauraBokkers/educom-webshop-database-1697464342/blob/24207b770b2e688a311efd9eeb2fbbaf0270d22f/validations.php#L57-L64 lijkt veel op https://github.com/LauraBokkers/educom-webshop-database-1697464342/blob/24207b770b2e688a311efd9eeb2fbbaf0270d22f/validations.php#L109-L117 Dit is niet D.R.Y.

Probeer hier een generieke functie voor te maken

 function collectAndValidateEmail($data, $key) {
     $data[$key] = test_input(getPostVar($key)); 
     if (empty($data[$key])) { 
         $data[$key . 'Err'] = "*Email is required"; 
     }     
     // check if e-mail address is well-formed 
     else if (!filter_var($data[$key], FILTER_VALIDATE_EMAIL)) { 
         $loginData[$key . 'Err'] = "*Invalid email format"; 
     }
     return $data;
 }

Zodat je kunt doen

  $loginData = collectAndValidateEmail($loginData, "email");

idem voor andere blokken code in validations.php

JeroenHeemskerk commented 11 months ago

optioneel kan je het nog verder opsplitsen:

 function collectRequiredField($data, $key, $label) {
     $data[$key] = test_input(getPostVar($key)); 
     if (empty($data[$key])) { 
         $data[$key . 'Err'] = "*$label is required"; 
     }     
     return $data;
 } 
 function collectAndValidateEmail($data, $key, $label) {
     $data = collectRequiredField($data, $key, $label);
     // check if e-mail address is well-formed 
     if (empty($data[$key.'Err']) && !filter_var($data[$key], FILTER_VALIDATE_EMAIL)) { 
         $loginData[$key . 'Err'] = "*Invalid email format"; 
     }
     return $data;
 }