Skip to content

Instantly share code, notes, and snippets.

@benjaco
Last active May 28, 2017 10:50
Show Gist options
  • Save benjaco/0b0c25bf9ec883144ab9586cd10cbb72 to your computer and use it in GitHub Desktop.
Save benjaco/0b0c25bf9ec883144ab9586cd10cbb72 to your computer and use it in GitHub Desktop.
<?
/*
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