platform/api/symfony/Component/VarExporter/Hydrator.yaml

100 lines
2.2 KiB
YAML
Raw Normal View History

2024-09-02 17:44:11 +00:00
name: Hydrator
class_comment: null
dependencies:
- name: InternalHydrator
type: class
source: Symfony\Component\VarExporter\Internal\Hydrator
properties: []
methods:
- name: hydrate
visibility: public
parameters:
- name: instance
- name: properties
default: '[]'
- name: scopedProperties
default: '[]'
comment: '# * Utility class to hydrate the properties of an object.
# *
# * @author Nicolas Grekas <p@tchwork.com>
# */
# final class Hydrator
# {
# /**
# * Sets the properties of an object, including private and protected ones.
# *
# * For example:
# *
# * // Sets the public or protected $object->propertyName property
# * Hydrator::hydrate($object, [''propertyName'' => $propertyValue]);
# *
# * // Sets a private property defined on its parent Bar class:
# * Hydrator::hydrate($object, ["\0Bar\0privateBarProperty" => $propertyValue]);
# *
# * // Alternative way to set the private $object->privateBarProperty property
# * Hydrator::hydrate($object, [], [
# * Bar::class => [''privateBarProperty'' => $propertyValue],
# * ]);
# *
# * Instances of ArrayObject, ArrayIterator and SplObjectStorage can be hydrated
# * by using the special "\0" property name to define their internal value:
# *
# * // Hydrates an SplObjectStorage where $info1 is attached to $obj1, etc.
# * Hydrator::hydrate($object, ["\0" => [$obj1, $info1, $obj2, $info2...]]);
# *
# * // Hydrates an ArrayObject populated with $inputArray
# * Hydrator::hydrate($object, ["\0" => [$inputArray]]);
# *
# * @template T of object
# *
# * @param T $instance The object
to hydrate
# * @param array<string, mixed> $properties The properties
to set on the instance
# * @param array<class-string, array<string, mixed>> $scopedProperties The properties
to set on the instance,
# * keyed by
their declaring class
# *
# * @return T'
traits: []
interfaces: []