/** * @param $id * @param Definition $definition */ public function register(string $id, Definition $definition) { $createArguments = function (BaseContainer\Argument $argument) use(&$createArguments) { if ($argument instanceof BaseContainer\ScalarArgument) { return $argument->value(); } if ($argument instanceof BaseContainer\ArgumentService) { return new Reference($argument->value()); } if ($argument instanceof BaseContainer\ArgumentCollection) { return array_map($createArguments, $argument->value()); } }; $this->builder->setDefinition($id, new SymfonyDefinition($definition->className(), array_map($createArguments, $definition->arguments()))); }