respect-validation/docs/rules/KeySet.md
Henrique Moody 10df3211f5
Add "Categorization" section to rule documentations
Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2019-05-11 19:16:21 +02:00

66 lines
1.1 KiB
Markdown

# KeySet
- `KeySet(Key ...$rule)`
Validates a keys in a defined structure.
```php
$dict = ['foo' => 42];
v::keySet(
v::key('foo', v::intVal())
)->validate($dict); // true
```
Extra keys are not allowed:
```php
$dict = ['foo' => 42, 'bar' => 'String'];
v::keySet(
v::key('foo', v::intVal())
)->validate($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())
)->validate($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)
)->validate($dict); // true
```
The keys' order is not considered in the validation.
## Categorization
- Arrays
- Nesting
- Structures
## Changelog
Version | Description
--------|-------------
1.0.0 | Created
***
See also:
- [ArrayVal](ArrayVal.md)
- [Key](Key.md)
- [KeyValue](KeyValue.md)