public static function fromObject()

in src/Apache/Ignite/Data/BinaryObject.php [120:142]


    public static function fromObject(object $object, ComplexObjectType $complexObjectType = null): BinaryObject
    {
        $typeBuilder = BinaryTypeBuilder::fromObject($object, $complexObjectType);
        $result = new BinaryObject($typeBuilder->getTypeName());
        $result->typeBuilder = $typeBuilder;
        try {
            $class = new \ReflectionClass($object);
            foreach ($typeBuilder->getFields() as $field) {
                $fieldName = $field->getName();
                if ($class->hasProperty($fieldName)) {
                    $result->setField(
                        $fieldName,
                        $class->getProperty($fieldName)->getValue($object),
                        $complexObjectType ? $complexObjectType->getFieldType($fieldName) : null);
                } else {
                    BinaryUtils::serializationError(true, sprintf('field "%s" does not exist', $fieldName));
                }
            }
        } catch (\ReflectionException $e) {
            BinaryUtils::serializationError(true, sprintf('class "%s" does not exist', get_class($object)));
        }
        return $result;
    }