src/ObjectDeserializer.php
public static function forThe(string $class): DeserializesObjects
    {
        return new ObjectDeserializer(
            Instantiator::forThe($class),
            empty(listOfParentsForThe($class))
                ? ObjectHydrator::default()
                : ReflectiveHydrator::default()
        );
    }
public static function forThe(string $class): DeserializesObjects
    {
        return new ObjectDeserializer(
            Instantiator::forThe($class),
            empty(listOfParentsForThe($class))
                ? ObjectHydrator::default()
                : ReflectiveHydrator::default()
        );
    }
public static function forThe ( string $ class ) : DeserializesObjects { return new ObjectDeserializer ( Instantiator :: forThe ( $ class ) , empty ( listOfParentsForThe ( $ class ) ) ? ObjectHydrator :: default ( ) : ReflectiveHydrator :: default ( ) ) ; }
Makes a new deserializer for the class.

Produces a default instantiator and hydrator for the class. If the class
uses inheritance, a reflective hydrator is used by default. This may not
always be necessary. (ie. when not inheriting private properties) In such
cases, @see ObjectDeserializer::using can be used instead.

@param string $class            The fully qualified collection class name.
@return DeserializesObjects     The object deserializer.
@throws CannotInstantiateThis   When the class cannot be instantiated.
Makes a new deserializer for the class .