1. Go to this page and download the library: Download smwcentral/validator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
smwcentral / validator example snippets
use SMWCentral\Validation\Validator;
$validator = new Validator($_POST);
$recipient = $validator->string('recipient')->value();
$subject = $validator->string('subject')->between(1, 255)->value();
$text = $validator->string('text')->between(1, 65535)->value();
$isRecipientValid = false; /* validate manually somehow */
if(!$isRecipientValid){
$validator->errors()->add('recipient', 'not_found');
}
if($validator->passes()){
// use data
}
use SMWCentral\Validation\Validator;
$validator = new Validator($_POST);
$id = $validator->retrieve('id'); // 'description', ''); // will default to an empty string
if($validator->passes()){
// all values are guaranteed to follow the validation rules
// continue form action
}else{
$errors = $validator->errors();
// show errors to the user
}
// Field `description` is an optional string between 0 and 65535
// characters. Its value will be stored in `$description`.
$description = $validator->string('description', '')->between(0, 65535)->value();
// If the value is shorter than 5 characters, both `min()` and `between()`
// will create a validation error.
$variable->min(5)->between(8, 10)->value();
// If the value is shorter than 5 characters, only `min()` will create a
// validation error. `between()` (and anything after it) will be ignored.
$variable->bail()->min(5)->between(8, 10)->value();
$errors = $validator->errors();
// Methods that check all Messages
$errors->all();
$errors->count();
$errors->isEmpty();
// Methods that operate on specific fields
$errors->except(['fields', 'to', 'exclude']);
$errors->get('field');
$errors->getFirst('field');
// `MessageBag`s can be counted and encoded to JSON
count($errors);
json_encode($errors);
use SMWCentral\Validation\Message;
$recipient = $validator->string('recipient')->value();
$recipientID = findUserID($recipient);
if(!$recipientID){
$validator->errors()->add('recipient', 'not_found');
// is equivalent to
$validator->errors()->add('recipient', new Message('recipient', 'not_found'));
}
if($validator->passes()){
// manual validation has succeeded
}
use SMWCentral\Validation\{ITokenProvider, Validator};
Validator::$tokenProvider = new class implements ITokenProvider {
public function getTokenKey(Validator $validator): string {
// the name of the field that should contain the token
return 'token';
}
public function getTokenValue(Validator $validator): string {
// the expected value of the token
return $_SESSION['token'];
}
};
$message = $validator->errors()->getFirst('field');
echo $message;
// is equivalent to
echo $message->getTranslatedMessage();
use SMWCentral\Validation\{Message, MessageResolver};
Message::$resolver = new class implements IMessageResolver {
public function resolveMessage(string $field, string $key, array $args): string {
return "{$field}: {$key}";
}
};
use SMWCentral\Validation\Message;
$validator->errors()->add('recipient', new Message('recipient', 'not_found', ['context' => 'private_message']));
$validator->string('new_pass')->min(8);
// DefaultMessageResolver could produce: The new_pass must have at least 8 characters.
$validator->string('new_pass', null, ['field' => 'new password'])->min(8);
// DefaultMessageResolver could produce: The new password must have at least 8 characters.