Chris@0: container->has($definition)) { Chris@0: $instance = $this->container->get($definition); Chris@0: } Chris@0: else { Chris@0: if (!class_exists($definition)) { Chris@0: throw new \InvalidArgumentException(sprintf('Class "%s" does not exist.', $definition)); Chris@0: } Chris@0: Chris@0: if (is_subclass_of($definition, 'Drupal\Core\DependencyInjection\ContainerInjectionInterface')) { Chris@0: $instance = $definition::create($this->container); Chris@0: } Chris@0: else { Chris@0: $instance = new $definition(); Chris@0: } Chris@0: } Chris@0: Chris@0: if ($instance instanceof ContainerAwareInterface) { Chris@0: $instance->setContainer($this->container); Chris@0: } Chris@0: Chris@0: return $instance; Chris@0: } Chris@0: Chris@0: }