The most awesome validation engine ever created for PHP
--
(#345)malkusch/bav
(#885)--
(#345)malkusch/bav
(#885)The Respect development team announces the immediate availability of Respect\Validation 1.1.0.
This version is going to be supported until 2018-08-24.
This release adds 6 new rules, some improvements and some bug fixes.
Another version of this file is available with the source on the CHANGELOG.md file.
Fibonacci
IdentityCard
Image
LanguageCode
Pesel
PhpLabel
The Respect development team announces the immediate availability of Respect\Validation 1.0.0.
This version is going to be supported until 2017-02-24.
This release adds 26 new rules, add some features (specially on exceptions), removes existing features, and fixes some bugs.
Another version of this file is available with the source on the CHANGELOG.md file.
We would like to thanks to the PHPSP community for all the support on the first TestFest Respect\Validation, that brings us 51 commits, 135 created integration tests, 12 improved unit tests, 2 bugs found, 4 new rules and 1 improved rule: you guys are awesome!
BoolVal
;Bsn
;CallableType
;Countable
;CurrencyCode
;Extension
;Factor
;Finite
;FloatType
;Identical
;Imei
;Infinite
;IntType
;Iterable
;KeyNested
;KeySet
;KeyValue
;Mimetype
;NotBlank
;NotOptional
;Optional
;ResourceType
;ScalarVal
;Size
;SubdivisionCode
(252 countries);VideoUrl
.The main new features are related to the exceptions:
getMessages()
for nested exceptions
(NestedValidationException
);Array
to string;Exception
to string;Traversable
to string;Object
conversion to string;But also there are a few improvements for some rules:
alpha-3
and numeric
formats for CountryCode
rule{{countryCode}}
to the message of PostalCode
exception ruleAbstractRelated
(Attribute
, Call
and Key
rules) defines names for
children rulesTrue
and False
rules (now TrueVal
and FalseVal
) had an awkward
behavior, now they use filter_var()
with FILTER_VALIDATE_BOOLEAN
to
validate their inputsThe main change of this version it that, despite what happens since version
0.6, now all rules are mandatory, so they do not accept an empty string
(''
) as valid value, and because of this you don't need to add NotEmpty
to every chain you want as mandatory. That change was only made after many
opened bugs reporting problems on this feature and since this feature cannot
work property with the code-base we have without an ugly hard-coded workaround.
Plus, there were lots of people complaining about what should be optional or
not, and many of them consider null
as an optional value too.
However, you're still able work with optional values (that now are an empty
string ''
and null
) by using the Optional
rule:
v::optional(v::intType())->validate(''); // true
v::optional(v::intType())->validate(null); // true
Also, there is the NotOptional
rule that may be very useful for you when
dealing with non-optional values.
Some rule needed to be renamed to be compatible with PHP 7:
Bool
to BoolType
False
to FalseVal
Float
to FloatVal
Int
to IntVal
String
to StringType
True
to TrueVal
Then, to keep consistency, other rules got renamed as well:
Arr
to ArrayVal
NullValue
to NullType
Object
to ObjectType
The old Arr
rule, now ArrayVal
, got splitted into 4 rules:
ArrayVal
: validates if the input is an array or if the input can be used as
an array;ArrayType
: validates whether the type of the input is array;Countable
: validates if the input is countable, in other words, if you're
able to use count() function on it;Iterable
: validates if the input is iterable, in other words, if you're
able to iterate over it with foreach language
construct.The Equals
rule got splitted into 2 rules:
Equals
: validates if the input is equal to some value, with not longer
supports the second argument on its constructor for identical checking;Identical
: Validates if the input is identical to some value.Rules that validate intervals are now inclusive, by default:
Between
Max
Min
Some exception classes had the Abstract
prefix, but they were not really
abstract, then they got renamed:
AbstractGroupedException
to GroupedValidationException
AbstractNestedException
to NestedValidationException
Some exception interfaces were not really necessary, then they got removed:
NestedValidationExceptionInterface
:
On try/catch
blocks you can simply use NestedValidationException
insteadValidationExceptionInterface
:
On try/catch
blocks you can simply use ValidationException
insteadAll deprecated rules were removed:
Consonants
in favor of Consonant
;Digits
: in favor of Digit
Hexa
in favor of Xdigits
;Vowels
: in favor of Vowel
Also, all shortcuts were removed:
addOr()
shortcutnot()
shortcutSee #235.
See #235.
See #306.
See #306.
bank()
(#188 by @malkusch - only german support)bankAccount()
(#188 by @malkusch - only german support)bic()
(#188 by @malkusch - only german support)false()
(#263 by @henriquemoody)filterVar()
(#267 by @henriquemoody)true()
(#263 by @henriquemoody)type()
(#280 by @henriquemoody)url()
(#269 by @henriquemoody)max()
(#292 by @henriquemoody): better support for date and time comparisonmin()
(#292 by @henriquemoody): better support for date and time comparisonwhen()
(#247 by @henriquemoody): allow to use rule without else's constraint