Documentation

Hydrator
in package

FinalYes

Utility class to hydrate the properties of an object.

Tags
author

Nicolas Grekas p@tchwork.com

Table of Contents

Methods

hydrate()  : T
Sets the properties of an object, including private and protected ones.

Methods

hydrate()

Sets the properties of an object, including private and protected ones.

public static hydrate(T $instance[, array<string, mixed> $properties = [] ][, array<class-string, array<string, mixed>> $scopedProperties = [] ]) : T

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]]);
Parameters
$instance : T

The object to hydrate

$properties : array<string, mixed> = []

The properties to set on the instance

$scopedProperties : array<class-string, array<string, mixed>> = []

The properties to set on the instance, keyed by their declaring class

Tags
template
Return values
T

        
On this page

Search results