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;
}