- Enh #787: Explicitly import classes, functions, and constants in "use" section (@mspirkov)
- Enh #784: Add PHP 8.5 support (@vjik)
- Bug #776: Take
PropertyTranslatorProviderInterfaceinto account during context validation (@vjik) - Bug #783: Fix error on uninitialized properties validation (@batyrmastyr)
- New #774: Add
Result::getPropertyErrorMessagesByPath()method (@vjik)
- Enh #770: Allow use callable rules into
Nested(@Enjoyzz) - Enh #772: Adapt summary data in debug collector (@rustamwin)
- Enh #773: Support stringable objects as validation error messages (@vjik)
- Bug #750: Fix
WhenMissingnot working in nested rules (@Enjoyzz) - Bug #751: Fix incorrect
Nestedrule processing withinEach(@Enjoyzz)
- New #766: Add
Uuidrule for validating UUID strings (@Sakhnovkrg)
- New #762: Add
stopOnErrorparameter toEachrule (@vjik) - Chg #761: Change PHP constraint in
composer.jsonto~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0(@vjik) - Chg #761: Bump
yiisoft/stringsversion to^2.6(@vjik) - Enh #758: Minor refactoring with PHP 8.1 features usage (@vjik)
- Bug #748: Fix hook processing for nested objects that implement
PostValidationHookInterfacewhenNestedrule with specified rules is used (@DAGpro) - Bug #756: Fix russian translation of error message for
FilledAtLeastrule (@vjik) - Bug #760: Fix bug in
Emailrule in edge case when enabled IDN, check DNS and used custom pattern (@vjik) - Bug #761: Fix
URLhandler for PHP 8.4 when value is empty string (@vjik)
- Chg #747: Merge rules from PHP attributes with rules provided via
getRules()method (@vjik) - Enh #740: Use
Yiisoft\NetworkUtilities\IpRangesinIprule: addgetIpRanges()method and deprecategetRanges(),getNetworks(),isAllowed()methods (@vjik) - Enh #746: Use
NEGATION_CHARACTERconstant fromnetwork-utilitiespackage inIpHandlerinstead of declaring its own constant (@arogachev)
- New #615: Add the
Each::PARAMETER_EACH_KEYvalidation context parameter that available duringEachrule handling and containing the current key (@dood-) - New #630, #718: Include attribute name in error messages when it's present (@dood-, @arogachev)
- New #633: Add PHP attribute that sets property label for usage in error messages (@dood-)
- New #734: Add
InEnumrule (@samdark) - Chg #583: Change "attribute" to "property" in class/trait/method/variable/placeholder names (@vjik)
- Chg #613: Change type of
$escapeargument inError::getValuePath()frombool|string|nulltostring|null(@arogachev) - Chg #623: List translated attributes in error message for
OneOfandAtLeastrules (@arogachev) - Chg #624: Fix meaning of error message in
OneOfrule (@arogachev) - Chg #625: Improve meaning and use pluralization in error message for
OneOfandAtLeastrules (@arogachev) - Chg #626: Disallow
$mingreater than amount of$attributesinAtLeastconfiguration (@arogachev) - Chg #634: Move
getName()method fromRuleInterfacetoRuleWithOptionsInterface(@arogachev) - Chg #634: Rename
RuleWithOptionsInterfacetoDumpedRuleInterface(@arogachev) - Chg #634: Use FQCN as a name for built-in rules during export with
RulesDumper(@arogachev) - Chg #634: Use FQCN as a name for rules not implementing
DumpedRuleInterfaceduring export withRulesDumper(@arogachev) - Chg #660: Change type of
$skipOnEmptyargument in rules' constructors frommixedtobool|callable|null(@arogachev) - Chg #679: Change type of
$ruleargument inRuleHandlerInterface::validate()fromobjecttoRuleInterface(@arogachev) - Chg #694: Rename
AtLeastrule toFilledAtLeastandOneOfrule toFilledOnlyOneOf(@arogachev) - Enh #492: Add type to error messages related with incorrect input (@arogachev)
- Enh #622: Use
json_validate()built-in PHP function inJsonHandlerif code is run with PHP 8.3 (@arogachev) - Enh #636: Improve psalm annotations in
Resultclass (@vjik) - Enh #637: Add German translation (@took)
- Enh #639: Simplify validation of JSON in
JsonHandlerusing built-in PHP functions for PHP versions below 8.3 (@arogachev) - Enh #648: Raise the minimum version of PHP to 8.1 (@pamparam83)
- Enh #726: Refactor
Result::add(): tookarray_merge()out of theforeach(@lav45) - Enh #733: Make parameter
$rulesinRulesNormalizer::normalize()optional (@vjik) - Enh #735: Make
Json::$messagea bit more clear (@arogachev) - Bug #632: Fix property name usage in error messages of rules in
Nestedrule (@vjik) - Bug #733: Rules provided by data object PHP attributes were not used in
RulesNormalizer::normalize()(@vjik) - Bug #736: Fix wrong value for
typeparameter forEach::$incorrectInputKeyMessage(@arogachev)
- Bug #719: Fix parameters leak in context validation (@vjik)
- New #649: Add
getFirstErrorMessagesIndexedByPath()andgetFirstErrorMessagesIndexedByAttribute()methods toResult(@arogachev) - New #655: Add rules for validating value types -
boolean,float,integer,string(@arogachev) - New #657: Add
Result::add()method for merging other results to the base one (@arogachev) - New #687: Add
UniqueIterablerule (@arogachev) - New #693: Add
AnyRulerule (@arogachev)
- New #665: Add methods
addErrorWithFormatOnly()andaddErrorWithoutPostProcessing()toResultobject (@vjik) - New #670, #677, #680: Add
Imagevalidation rule (@vjik, @arogachev) - New #678: Add
Date,DateTimeandTimevalidation rules (@vjik) - Enh #668: Clarify psalm types in
Result(@vjik)
- New #597, #608: Add debug collector for
yiisoft/yii-debug(@xepozz, @vjik) - New #610: Add
$escapeparameter to methodsResult::getAttributeErrorMessagesIndexedByPath()andResult::getErrorMessagesIndexedByPath()that allow change or disable symbol which will be escaped in value path elements (@vjik) - New #617: Add
OneOfrule (@arogachev) - Enh #658: Minor refactoring of
EmailHandler::validate()method (@vjik) - Enh #658: Add more specific psalm type for "skip on empty" callable (@vjik)
- Enh #658: Make
$isAttributeMissingparameter of empty conditions (NeverEmpty,WhenEmpty,WhenMissing,WhenNull) optional (@vjik) - Bug #612: Disable escaping of asterisk char in value path returned by
Error::getValuePath(true)(@vjik)
- Enh #594: Add
StringValuerule (@arogachev) - Enh #567: Add immutable setter for modifying
Validator::$defaultSkipOnEmptyCondition(@arogachev) - Bug #586: Allow
0as a limit inCountableLimitTrait(@arogachev) - Bug #431: Add support for empty iterables to
WhenEmpty(@arogachev)
- Initial release.