2015-07-20 12:16:46 +02:00
|
|
|
# KeySet
|
|
|
|
|
2017-03-27 14:47:07 +02:00
|
|
|
- `KeySet(Key ...$rule)`
|
2015-07-20 12:16:46 +02:00
|
|
|
|
|
|
|
Validates a keys in a defined structure.
|
|
|
|
|
|
|
|
```php
|
2015-10-18 03:44:47 +02:00
|
|
|
$dict = ['foo' => 42];
|
2015-07-20 12:16:46 +02:00
|
|
|
|
|
|
|
v::keySet(
|
2015-10-07 16:46:57 +02:00
|
|
|
v::key('foo', v::intVal())
|
2015-10-20 02:53:25 +02:00
|
|
|
)->validate($dict); // true
|
2015-07-20 12:16:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Extra keys are not allowed:
|
|
|
|
```php
|
2015-10-18 03:44:47 +02:00
|
|
|
$dict = ['foo' => 42, 'bar' => 'String'];
|
2015-07-20 12:16:46 +02:00
|
|
|
|
|
|
|
v::keySet(
|
2015-10-07 16:46:57 +02:00
|
|
|
v::key('foo', v::intVal())
|
2015-10-20 02:53:25 +02:00
|
|
|
)->validate($dict); // false
|
2015-07-20 12:16:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Missing required keys are not allowed:
|
|
|
|
```php
|
2015-10-18 03:44:47 +02:00
|
|
|
$dict = ['foo' => 42, 'bar' => 'String'];
|
2015-07-20 12:16:46 +02:00
|
|
|
|
|
|
|
v::keySet(
|
2015-10-07 16:46:57 +02:00
|
|
|
v::key('foo', v::intVal()),
|
2015-10-07 16:52:03 +02:00
|
|
|
v::key('bar', v::stringType()),
|
2015-10-07 16:30:29 +02:00
|
|
|
v::key('baz', v::boolType())
|
2015-10-20 02:53:25 +02:00
|
|
|
)->validate($dict); // false
|
2015-07-20 12:16:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
Missing non-required keys are allowed:
|
|
|
|
```php
|
2015-10-18 03:44:47 +02:00
|
|
|
$dict = ['foo' => 42, 'bar' => 'String'];
|
2015-07-20 12:16:46 +02:00
|
|
|
|
|
|
|
v::keySet(
|
2015-10-07 16:46:57 +02:00
|
|
|
v::key('foo', v::intVal()),
|
2015-10-07 16:52:03 +02:00
|
|
|
v::key('bar', v::stringType()),
|
2015-10-07 16:30:29 +02:00
|
|
|
v::key('baz', v::boolType(), false)
|
2015-10-20 02:53:25 +02:00
|
|
|
)->validate($dict); // true
|
2015-07-20 12:16:46 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
The keys' order is not considered in the validation.
|
|
|
|
|
2019-05-11 18:32:13 +02:00
|
|
|
## Categorization
|
|
|
|
|
|
|
|
- Arrays
|
|
|
|
- Nesting
|
|
|
|
- Structures
|
|
|
|
|
2017-03-27 22:04:13 +02:00
|
|
|
## Changelog
|
|
|
|
|
|
|
|
Version | Description
|
|
|
|
--------|-------------
|
|
|
|
1.0.0 | Created
|
|
|
|
|
2015-08-20 06:38:41 +02:00
|
|
|
***
|
2015-07-20 12:16:46 +02:00
|
|
|
See also:
|
|
|
|
|
2018-12-11 13:31:50 +01:00
|
|
|
- [ArrayVal](ArrayVal.md)
|
2017-03-28 11:53:14 +02:00
|
|
|
- [Key](Key.md)
|
2018-12-11 13:31:50 +01:00
|
|
|
- [KeyValue](KeyValue.md)
|