mirror of
https://github.com/Respect/Validation.git
synced 2026-03-17 23:59:51 +01:00
Version 3.0 will include a few crucial deprecations. This commit adds some soft deprecations to warn users about these changes. Some of the biggest changes are: * The method `validate()` will be renamed to `isValid()`. * The method `validate()` will be repurposed to return an object with failures. * It won't be possible to handle rules directly; users will need to use the `Validator` class to validate with any rule. There will some more changes, but those are some of the most important ones, and are the ones that are easy to deprecate right now.
68 lines
1.2 KiB
Markdown
68 lines
1.2 KiB
Markdown
# KeySet
|
|
|
|
- `KeySet(Key ...$rule)`
|
|
|
|
Validates a keys in a defined structure.
|
|
|
|
```php
|
|
$dict = ['foo' => 42];
|
|
|
|
v::keySet(
|
|
v::key('foo', v::intVal())
|
|
)->isValid($dict); // true
|
|
```
|
|
|
|
Extra keys are not allowed:
|
|
```php
|
|
$dict = ['foo' => 42, 'bar' => 'String'];
|
|
|
|
v::keySet(
|
|
v::key('foo', v::intVal())
|
|
)->isValid($dict); // false
|
|
```
|
|
|
|
Missing required keys are not allowed:
|
|
```php
|
|
$dict = ['foo' => 42, 'bar' => 'String'];
|
|
|
|
v::keySet(
|
|
v::key('foo', v::intVal()),
|
|
v::key('bar', v::stringType()),
|
|
v::key('baz', v::boolType())
|
|
)->isValid($dict); // false
|
|
```
|
|
|
|
Missing non-required keys are allowed:
|
|
```php
|
|
$dict = ['foo' => 42, 'bar' => 'String'];
|
|
|
|
v::keySet(
|
|
v::key('foo', v::intVal()),
|
|
v::key('bar', v::stringType()),
|
|
v::key('baz', v::boolType(), false)
|
|
)->isValid($dict); // true
|
|
```
|
|
|
|
It is not possible to negate `keySet()` rules with `not()`.
|
|
|
|
The keys' order is not considered in the validation.
|
|
|
|
## Categorization
|
|
|
|
- Arrays
|
|
- Nesting
|
|
- Structures
|
|
|
|
## Changelog
|
|
|
|
Version | Description
|
|
--------|-------------
|
|
2.3.0 | KeySet is NonNegatable, fixed message with extra keys
|
|
1.0.0 | Created
|
|
|
|
***
|
|
See also:
|
|
|
|
- [ArrayVal](ArrayVal.md)
|
|
- [Key](Key.md)
|
|
- [KeyValue](KeyValue.md)
|