*/ class InstanceInjector extends ObjectCreator { /** * Injects dependencies on an existing instance. * * @param InstanceDefinition $definition * * {@inheritdoc} */ public function resolve(Definition $definition, array $parameters = []) { $this->assertIsInstanceDefinition($definition); try { $this->injectMethodsAndProperties($definition->getInstance(), $definition->getObjectDefinition()); } catch (NotFoundException $e) { $message = sprintf( "Error while injecting dependencies into %s: %s", get_class($definition->getInstance()), $e->getMessage() ); throw new DependencyException($message, 0, $e); } } /** * {@inheritdoc} */ public function isResolvable(Definition $definition, array $parameters = []) { $this->assertIsInstanceDefinition($definition); return true; } private function assertIsInstanceDefinition(Definition $definition) { if (!$definition instanceof InstanceDefinition) { throw new \InvalidArgumentException(sprintf( 'This definition resolver is only compatible with InstanceDefinition objects, %s given', get_class($definition) )); } } }