DI\Definition\Helper\ObjectDefinitionHelper::fixParameters PHP Method

fixParameters() private method

This is necessary so that merging definitions between sources is possible.
private fixParameters ( ObjectDefinition $definition, string $method, array $parameters ) : array
$definition DI\Definition\ObjectDefinition
$method string
$parameters array
return array
    private function fixParameters(ObjectDefinition $definition, $method, $parameters)
    {
        $fixedParameters = [];
        foreach ($parameters as $index => $parameter) {
            // Parameter indexed by the parameter name, we reindex it with its position
            if (is_string($index)) {
                $callable = [$definition->getClassName(), $method];
                try {
                    $reflectionParameter = new \ReflectionParameter($callable, $index);
                } catch (\ReflectionException $e) {
                    throw DefinitionException::create($definition, sprintf("Parameter with name '%s' could not be found. %s.", $index, $e->getMessage()));
                }
                $index = $reflectionParameter->getPosition();
            }
            $fixedParameters[$index] = $parameter;
        }
        return $fixedParameters;
    }