private function convertObjectDefinition(ContainerBuilder $container, ObjectDefinitionInterface $definition) { $symfonyDefinition = new Definition(); $symfonyDefinition->setClass($definition->getClassName()); $symfonyDefinition->setArguments($this->convertArguments($container, $definition->getConstructorArguments())); foreach ($definition->getPropertyAssignments() as $propertyAssignment) { $symfonyDefinition->setProperty($propertyAssignment->getPropertyName(), $this->convertArguments($container, $propertyAssignment->getValue())); } foreach ($definition->getMethodCalls() as $methodCall) { $symfonyDefinition->addMethodCall($methodCall->getMethodName(), $this->convertArguments($container, $methodCall->getArguments())); } return $symfonyDefinition; }
/** * @param object $service * @param ObjectDefinitionInterface $definition * * @return object */ private function callMethods($service, ObjectDefinitionInterface $definition) { foreach ($definition->getMethodCalls() as $methodCall) { $methodArguments = $methodCall->getArguments(); $methodArguments = array_map([$this, 'resolveSubDefinition'], $methodArguments); call_user_func_array([$service, $methodCall->getMethodName()], $methodArguments); } return $service; }