2017 © Pedro Peláez
 

library validationkit

image

corneltek/validationkit

  • Friday, September 26, 2014
  • by c9s
  • Repository
  • 2 Watchers
  • 5 Stars
  • 7,364 Installations
  • C
  • 2 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Validation

Validators

  • ValidationKit\PhoneNumber\TWPhoneNumberValidator
  • ValidationKit\TW\IDNumberValidator
  • ValidationKit\CallbackValidator
  • ValidationKit\ChainedValidator
  • ValidationKit\EmailValidator
  • ValidationKit\PasswordValidation
  • ValidationKit\PatternValidator
  • ValidationKit\RangeValidator
  • ValidationKit\StringLengthValidator
  • ValidationKit\StringValidator

Validator Constructor

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)

  • valid
  • invalid

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)

  1. valid (boolean)
  2. id (string, message id)
  3. message (string, message)

EmailValidator

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";
    }
}

PatternValidator

    use ValidationKit\PatternValidator;
    $validator = new PatternValidator( '#test test test#' );
    $bool = $validator->validate( $value );
    $msgs = $validator->getMessages();

StringLengthValidator

$validator = new ValidationKit\StringLengthValidator(array( 
    'min' => 5, 'max' => 10,
));

StringValidator

    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";
    }

PasswordValidator

$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.'
));

RangeValidator

    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 );

Customize your validator

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();
    }
}

Hacking

Install dependencies:, (*13)

$ composer install --dev

Run unit tests:, (*14)

$ phpunit

The Versions

26/09 2014

dev-master

9999999-dev

  Sources   Download

The Requires

  • php >=5.3.0

 

The Development Requires

28/03 2013

1.1.1

1.1.1.0

  Sources   Download

The Requires

  • php >=5.3.0

 

The Development Requires

21/03 2013

1.1.0

1.1.0.0

  Sources   Download

The Requires

  • php >=5.3.0