Form example - phramework/validate GitHub Wiki
The following example shows how to use the library to validate the form.
$formData
object data can alternative use php inputs like $_POST
superglobal.
<?php
require './vendor/autoload.php';
use \Phramework\Validate\EmailValidator;
use \Phramework\Validate\StringValidator;
use \Phramework\Validate\DateValidator;
use \Phramework\Validate\BooleanValidator;
use \Phramework\Validate\ObjectValidator;
use \Phramework\Validate\UnsignedIntegerValidator;
/**
* @throws Phramework\Exceptions\MissingParametersException
* @throws Phramework\Exceptions\IncorrectParametersException
*/
function registrationData()
{
$validationModel = new ObjectValidator(
(object) [
'email' => new EmailValidator(3, 100),
'name' => new StringValidator(3, 100),
'birth_date' => new DateValidator(),
'newsletter' => (new BooleanValidator())
->setTitle('Receive newsletter')
->setDefault(false),
'frequency' => (new UnsignedIntegerValidator(1, 7))
->setDescription('Emails per day')
->setDefault(1)
],
['email', 'name', 'birth_date'],
false //additionalProperties
);
$formData = (object) [
'email' => '[email protected]',
'name' => 'Xenofon Spafaridis',
'birth_date' => '1900-01-01',
'frequency' => '4'
];
$value = $validationModel->parse(formData);
return $value;
}
$value = registrationData();
var_dump($value);
The above example will output:
class stdClass#9 (5) {
public $email =>
string(18) "[email protected]"
public $name =>
string(18) "Xenofon Spafaridis"
public $birth_date =>
string(10) "1991-08-23"
public $frequency =>
int(4)
public $newsletter =>
bool(false)
}