<?php
namespace Symfony\Component\Serializer\Extractor;
use Symfony\Component\PropertyInfo\PropertyListExtractorInterface;
final class ObjectPropertyListExtractor implements ObjectPropertyListExtractorInterface
{
private \Closure $objectClassResolver;
public function __construct(
private PropertyListExtractorInterface $propertyListExtractor,
?callable $objectClassResolver = null,
) {
$this->objectClassResolver = ($objectClassResolver ?? 'get_class')(...);
}
public function getProperties(object $object, array $context = []): ?array
{
$class = ($this->objectClassResolver)($object);
return $this->propertyListExtractor->getProperties($class, $context);
}
}