Get an instance from an array
Values in $data
are applied to:
- Constructor parameters
- Writable properties
- Declared and "magic" properties covered by {@see Writable} (if
implemented by the class)
- Dynamic properties (if the class implements {@see Extensible})
If the class implements {@see Normalisable}, array keys, parameters and
property names are normalised for comparison.
Date and time values are converted to {@see DateTimeImmutable} instances
for parameters and declared or "magic" properties that accept
{@see DateTimeImmutable} or are covered by {@see Temporal} (if
implemented by the class).
If the class implements {@see Treeable} and a parent is given, the
instance is added to the parent as a child.