public function __construct(array $resolvers, ObjectGeneratorInterface $generator = null)
{
$this->resolvers = (function (ObjectGeneratorInterface $generator = null, ChainableValueResolverInterface ...$resolvers) {
foreach ($resolvers as $index => $resolver) {
if ($resolver instanceof ValueResolverAwareInterface) {
$resolvers[$index] = $resolver = $resolver->withValueResolver($this);
}
if (null !== $generator && $resolver instanceof ObjectGeneratorAwareInterface) {
/** @var ObjectGeneratorAwareInterface $resolver */
$resolvers[$index] = $resolver->withObjectGenerator($generator);
}
}
return $resolvers;
})($generator, ...$resolvers);
}