dev-master
9999999-dev
The Requires
- php >=5.3.0
The Development Requires
1.1.1
1.1.1.0
The Requires
- php >=5.3.0
The Development Requires
ValidationKit\PhoneNumber\TWPhoneNumberValidator
ValidationKit\TW\IDNumberValidator
ValidationKit\CallbackValidator
ValidationKit\ChainedValidator
ValidationKit\EmailValidator
ValidationKit\PasswordValidation
ValidationKit\PatternValidator
ValidationKit\RangeValidator
ValidationKit\StringLengthValidator
ValidationKit\StringValidator
ValidationKit Validator's constructor prototype is:, (*1)
__construct( $options = array() , $msgs = array() );
The $msgs() is an associative array that contains:, (*2)
msg_id => msg_str
For different kind of validation messages, every validator provides its custom msgid for message mapping, you can simply override the message dictionary to customize your messages., (*3)
The following sample code shows the format of message dictionary:, (*4)
$validtor = new PasswordValidator(array( /* options */ ), array( 'require_digits_error' => 'Please enter digits in your password', 'require_alpha_error' => 'Please enter alphabets in your password', 'max_length_error' => 'The maximum length of password is 24 charactors.' ));
The following list is the default message mapping:, (*5)
And of course you can easily extend messages in your customized validator class., (*6)
To return an invalid message in your validator:, (*7)
return $this->invalid('require_digits_error');
To return an valid message in your validator:, (*8)
return $this->valid('require_digits_error');
To get the result messages from validator:, (*9)
$msgs = $validator->getMessages(); foreach( $msgs as $msgId => $msg ) { // $msg => ValidationMessage }
The result message is a ValidationMessage
object, there are three class
properties in ValidationMessage
:, (*10)
use ValidationKit\EmailValidator; $validator = new EmailValidator; if( $validator->validate('foo@foo.com') ) { echo "Success!\n"; } else { foreach( $validator->getMessages() as $msgId => $msg ) { // $msg is a ValidationMessage object, // which supports __toString() convertion. echo $msg . "\n"; } }
use ValidationKit\PatternValidator; $validator = new PatternValidator( '#test test test#' ); $bool = $validator->validate( $value ); $msgs = $validator->getMessages();
$validator = new ValidationKit\StringLengthValidator(array( 'min' => 5, 'max' => 10, ));
use ValidationKit\StringValidator; $validator = new StringValidator(array( 'starts_with' => '....' , 'ends_with' => ... , 'is' => ..., 'contains' => ..., 'except' => ..., ), array( 'invalid' => 'general invalid message', 'starts_with_error' => 'error message' )); $bool = $validator->validate( $string ); $msgs = $validator->getMessages(); foreach( $msgs as $msgId => $msg ) { echo $msg, "\n"; }
$validator = new ValidationKit\PasswordValidator(array( 'max_length' => 24, 'min_length' => 10, 'require_digits' => true, 'require_alpha' => true, ), array( 'require_digits_error' => 'Please enter digits in your password', 'require_alpha_error' => 'Please enter alphabets in your password', 'max_length_error' => 'The maximum length of password is 24 charactors.' ));
use ValidationKit\RangeValidator; $validator = new RangeValidator(array( 'greater_than' => 100, 'less_than' => 200, )); $bool = $validator->validate( 200 ); $validator = new RangeValidator(array( '>' => 10 , '<' => 200 )); $bool = $validator->validate( 10.0 );
To write your own validator, here is the basic structure of a validator class:, (*11)
namespace YourApp; use ValidationKit\Validator; class YourValidator extends Validator { public function validate($val) { return $this->valid(); } }
You can provide your default message dictinory by defining a
getDefaultMessages
method:, (*12)
namespace YourApp; use ValidationKit\Validator; class YourValidator extends Validator { public function getDefaultMessages() { return array( 'valid' => 'Its a valid value.', 'too_large' => 'Your value is too large', 'too_small' => 'Your value is too small', ); } public function validate($val) { if( $val > 30 ) return $this->invalid('too_large'); if( $val < 10 ) return $this->invalid('too_small'); return $this->valid(); } }
Install dependencies:, (*13)
$ composer install --dev
Run unit tests:, (*14)
$ phpunit