Last active
May 28, 2017 10:50
-
-
Save benjaco/0b0c25bf9ec883144ab9586cd10cbb72 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
/* | |
validate[] - laver ikke værdien om, kan måske smide en error | |
transform[] - laver værdien om, kan måske smide en error | |
*/ | |
// Når Transformation indgår i validation navnet kan value ændre sig, der kan også være indbygget validering i disse methoder | |
$_POST["navn"] = "Bo"; | |
$navn = Validation::post("navn")->validateNotEmpty()->error("Navn er tom")->validateMinLength(3)->error("Angiv navn på minimum 3 tegn"); | |
$navn->value; // Bo | |
$navn->valid; // false | |
$navn->referanceName; // navn | |
$navn->error; // Angiv navn på minimum 3 tegn | |
// Når Validation::associativeReturn er sat til true vil man kunne tilgå felterne via referandeNavn, ellers er det indexet for hvilke parameter nummer der er puttet ind i Validation::validate | |
Validation::$associativeReturn = true; | |
// Bestemmer output format for exceptions (se forkaring nedefor) | |
Validation::$associativeException = true; | |
// Når Validation::exceptionValidationAsDefault er sat til true vil Validation::validate smide en Validation\InvalidData exception og returnere en ren (måske associative) liste at input værdier, | |
// ellers får man et object med values errors lister (der måske er associative) samt et valid felt | |
Validation::$exceptionValidationAsDefault = true; | |
// Laver en exception validator om til et alm return | |
Validation::returnWrapper( /* Exception validator */); | |
// Laver et aml return om til en exception validator | |
Validation::exceptionWrapper( /* Return validator */); | |
try { | |
$values = | |
Validation::validateAll( // Validation::validateBreakAtFail | |
Validation::post("navn")->validateMinLength(3)->error("Angiv navn på minimum 3 tegn"), | |
Validation::post("alder")->transformInt()->error("Angiv et tal i alder")->validateMin(18)->error("Minimum 18 år"), | |
Validation::get("id")->customValidator(function ($value) { return $value > 0; })->error("Id ikke genkendt"), | |
Validation::value(10, "email")->validateEmail()->error("Angiv en email")->customValidator("er_ledig")->error("Email er ikke ledig"), // er_ledig er en aml function der retunere en boolena og tager imod en value | |
Validation::get("alias")->default("Ingen alias"), | |
Validation::get("foedelsdag")->validateDate("Y-m-d H:I")->error("Angiv datoer"), | |
Validation::get("datoer")->array(function ($arrayItem) { return $arrayItem->transformDate("Y-m-d H:i"); })->error("Angiv datoer"), // køre pipen på hvert element | |
Validation::value("2620")->setReferenceName("postnummer")->validateRegexp('/^\d{4}$/')->error("Angiv et postnummer"), | |
Validation::post("accept", "referance_name_here")->validateCheckbox(true)->error("Accepter betingelser") | |
); | |
$values["navn"]; // Bo | |
} catch (Validation\InvalidData $invalidData){ | |
$invalidData->values["navn"]; // Bo | |
$invalidData->errors["navn"]; // Angiv navn på minimum 3 tegn | |
} | |
Validation::$exceptionValidationAsDefault = false; | |
$validation = Validation::validateAll( | |
Validation::post("navn")->validateMinLength(3)->error("Angiv navn på minimum 3 tegn"), | |
Validation::post("alder")->transformInt()->error("Angiv et tal i alder")->validateMin(18)->error("Minimum 18 år") | |
); | |
$validation->values["navn"]; // Bo | |
$validation->errors["navn"]; // Angiv navn på minimum 3 tegn | |
$validation->valid; // false | |
Validation::$assorcitivReturn = false; | |
$validation = Validation::validateAll( | |
Validation::post("navn")->validateMinLength(3)->error("Angiv navn på minimum 3 tegn"), | |
Validation::post("alder")->transformInt()->error("Angiv et tal i alder")->validateMin(18)->error("Minimum 18 år") | |
); | |
$validation->values[0]; // Bo | |
$validation->referances[0]; // navn | |
$validation->errors[0]; // Angiv navn på minimum 3 tegn | |
$validation->valid; // false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment