windwalker / validator
Windwalker Validator package
Package info
github.com/ventoviro/windwalker-validator
Type:windwalker-package
pkg:composer/windwalker/validator
3.5.23
2019-10-26 15:42 UTC
Requires
- php: >=7.1.3
- symfony/polyfill-mbstring: ^1.8
Requires (Dev)
- windwalker/compare: ~3.0
- windwalker/test: ~3.0
Suggests
- windwalker/compare: Install ~3.0 if you want to use CompareValidator.
This package is auto-updated.
Last update: 2026-06-18 18:38:00 UTC
README
Windwalker Validator is a simple interface to help up validate strings.
Installation via Composer
Add this to the require block in your composer.json.
{
"require": {
"windwalker/validator": "~3.0"
}
}
Simple Validate Process
use Windwalker\Validator\Rule\EmailValidator; $validator = new EmailValidator; $validator->validate('sakura@flower.com'); // bool(true) $validator->validate('sakura'); // bool(false)
Available Validator Rules
- AlnumValidator
- BooleanValidator
- ColorValidator
- CreditcardValidator
- EmailValidator
- EqualsValidator
- IpValidator
- NoneValidator
- PhoneValidator
- RegexValidator
- UrlValidator
- CallbackValidator
- CompareValidator
- PhpTypeValidator
Regex Validator
use Windwalker\Validator\Rule\RegexValidator; $validator = new RegexValidator('^[a-zA-Z0-9]*$', 'i'); $validator->validate('abc_123:978'); // bool(false)
Equals Validator
use Windwalker\Validator\Rule\EqualsValidator; $validator = new EqualsValidator('ABC'); $validator->validate('ABC'); // bool(true)
Strict Mode:
$validator = new EqualsValidator(123, true); $validator->validate('123'); // bool(false)
Error Message
$validator->setMessage('This string is not valid'); if (!$validator->validate('sakura')) { throw new \Exception($validator->getError()); }
Create Your Own Validator
use Windwalker\Validator\AbstractValidator; class MyValidator extends AbstractValidator { public function test($string) { return (bool) strlen($string); } } $validator = new MyValidator; $validator->validate('foo');
Extends Regex Validator
use Windwalker\Validator\Rule\RegexValidator; class MyRegexValidator extends RegexValidator { protected $modified = 'i'; protected $regex = '[a-zA-Z]'; }
Composite
Match all.
use Windwalker\Validator\ValidatorComposite; $validator = new ValidatorComposite([ AlnumValidator::class, new PhoneValidator ]); $validator->validate('1a2b'); // false $validator->getResults(); // [true, false]
Match one.
use Windwalker\Validator\ValidatorComposite; $validator = new ValidatorComposite([ AlnumValidator::class, new PhoneValidator ])->setMode(ValidatorComposite::MODE_MATCH_ONE); $validator->validate('1a2b'); // true $validator->getResults(); // [true, false]
Use methods:
$validator->validateOne($value); $validator->validateAll($value);