respect-validation/docs/rules/KeySet.md
Henrique Moody 52614d600d
Organize documentation for "Read the Docs"
The current documentation is hosted via GitHub pages rendered by
"Couscous". Every time we need a new version of the documentation
published we need to manually execute the "couscous".

This commit reorganize the documentation to be published to
"Read the Docs" because it will also allow us to have documentations per
version of the library most importantly provider a search field for the
documentation.

The documentation will be then published on:
https://respect-validation.readthedocs.io/

Signed-off-by: Henrique Moody <henriquemoody@gmail.com>
2018-08-23 01:59:39 +02:00

904 B

KeySet

  • v::keySet(Key $rule...)

Validates a keys in a defined structure.

$dict = ['foo' => 42];

v::keySet(
    v::key('foo', v::intVal())
)->validate($dict); // true

Extra keys are not allowed:

$dict = ['foo' => 42, 'bar' => 'String'];

v::keySet(
    v::key('foo', v::intVal())
)->validate($dict); // false

Missing required keys are not allowed:

$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:

$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.


See also: