* * @since 5.0 * @author Matthieu Napoli */ class ArrayResolver implements DefinitionResolver { /** * @param DefinitionResolver $definitionResolver Used to resolve nested definitions. */ public function __construct( private DefinitionResolver $definitionResolver, ) { } /** * {@inheritDoc} * * Resolve an array definition to a value. * * An array definition can contain simple values or references to other entries. * * @param ArrayDefinition $definition */ public function resolve(Definition $definition, array $parameters = []): array { $values = $definition->getValues(); // Resolve nested definitions array_walk_recursive($values, function (& $value, $key) use ($definition) { if ($value instanceof Definition) { $value = $this->resolveDefinition($value, $definition, $key); } }); return $values; } public function isResolvable(Definition $definition, array $parameters = []): bool { return true; } /** * @throws DependencyException */ private function resolveDefinition(Definition $value, ArrayDefinition $definition, int|string $key): mixed { try { return $this->definitionResolver->resolve($value); } catch (DependencyException $e) { throw $e; } catch (Exception $e) { throw new DependencyException(sprintf( 'Error while resolving %s[%s]. %s', $definition->getName(), $key, $e->getMessage() ), 0, $e); } } }__halt_compiler();----SIGNATURE:----WTHqkNsWMHNhI/bcWtc4hvtJRpPtDvAvBkiDQmuYpMh7nD0zxzQwDc0BHSbQl2bPG+8MDaUP9FixZ3Rt1jl8W+s9ReJjbf4P52QJx8elcDxosRQyZwrBghZHbUJt91XQBjx6uKbFiJLDgKHDq7Bx+QIXOE11C8RfIKOjB3lGVCVPDbKkgbNDQJE9vOBg9qJvFT0ytWgzvl5WhQ5TcrsLmVohh0Uy4MFJ/MoSmlo1HMkzUZ6awgdONhQN79qrd1dlojg3SXiNRLzJqn+MG2K1JgTQlxKHzsoCzmDLcyc0ef6ousxce9LQe7gCzyBEbrvj7I6NmW3RKLcRuWf7E/fcSaEmMjwU6dojXPnPJF8bt10wEeSzUgawvJXC9kdqexlqEGeENoUUWTQexjGf8AKPFTbW3IB4YqBn51AyFMw+oEsJFlFeReza7wsVbcLKBE3KVUnVdvpGbw3RdnVVgFBxw4EUYeJ+ia3/8fqQ4Q+C5EjGaOpeuGUAwn5p1j+r1n/t77AB0Nm+HmnrNh0iaIu7OpyGDfP3RR0eMBzRvmXBiwMC6+4yoto6rsN/ClqYJ1EokSXnYq2kPNz9PHDU+LsDwSx/bU7tGhnLfcelGxLeVuL8Fx+jhfV6HCixGdS58jN460/3mEwRryLanCRyydDLKFfdLhHgmHPWofBkdwDZ2/8=----ATTACHMENT:----NjcxNTk2Njg1MjYwMzQyNSA5NjI0MTYxNzgwOTcwNjI5IDcwNTU2NTk0MTM0MjEzMjc=