corneltek / validationkit
此包的最新版本(1.1.1)没有提供许可证信息。
1.1.1
2013-03-28 13:35 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- corneltek/phpunit-testmore: dev-master
This package is auto-updated.
Last update: 2024-08-29 03:31:20 UTC
README
验证器
ValidationKit\PhoneNumber\TWPhoneNumberValidator
ValidationKit\TW\IDNumberValidator
ValidationKit\CallbackValidator
ValidationKit\ChainedValidator
ValidationKit\EmailValidator
ValidationKit\PasswordValidation
ValidationKit\PatternValidator
ValidationKit\RangeValidator
ValidationKit\StringLengthValidator
ValidationKit\StringValidator
验证器构造函数
ValidationKit 验证器的构造函数原型是
__construct( $options = array() , $msgs = array() );
$msgs() 是一个包含以下内容的关联数组
msg_id => msg_str
对于不同类型的验证消息,每个验证器都为其消息映射提供自定义的 msgid,您可以简单地覆盖消息字典来自定义消息。
以下示例代码显示了消息字典的格式
$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.' ));
以下列表是默认消息映射
- 有效
- 无效
当然,您也可以轻松扩展自定义验证器类中的消息。
在您的验证器中返回无效消息
return $this->invalid('require_digits_error');
在您的验证器中返回有效消息
return $this->valid('require_digits_error');
从验证器获取结果消息
$msgs = $validator->getMessages(); foreach( $msgs as $msgId => $msg ) { // $msg => ValidationMessage }
结果消息是一个 ValidationMessage
对象,ValidationMessage
中有三个类属性
- 有效(布尔值)
- id(字符串,消息ID)
- 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 );
自定义验证器
要编写自己的验证器,以下是一个验证器类的基本结构
namespace YourApp; use ValidationKit\Validator; class YourValidator extends Validator { public function validate($val) { return $this->valid(); } }
您可以通过定义一个 getDefaultMessages
方法来提供默认的消息字典
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(); } }
黑客攻击
安装依赖项
$ composer install --dev
运行单元测试
$ phpunit