private function PhpDumper::hasReference

Checks if a service id has a reference.

Parameters

string $id:

array $arguments:

Boolean $deep:

array $visited:

Return value

Boolean

3 calls to PhpDumper::hasReference()
PhpDumper::addServiceInlinedDefinitions in drupal/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
Generates the inline definition of a service.
PhpDumper::addServiceInlinedDefinitionsSetup in drupal/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
Generates the inline definition setup.
PhpDumper::isSimpleInstance in drupal/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
Checks if the definition is a simple instance.

File

drupal/core/vendor/symfony/dependency-injection/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php, line 1107

Class

PhpDumper
PhpDumper dumps a service container as a PHP class.

Namespace

Symfony\Component\DependencyInjection\Dumper

Code

private function hasReference($id, array $arguments, $deep = false, $visited = array()) {
  foreach ($arguments as $argument) {
    if (is_array($argument)) {
      if ($this
        ->hasReference($id, $argument, $deep, $visited)) {
        return true;
      }
    }
    elseif ($argument instanceof Reference) {
      if ($id === (string) $argument) {
        return true;
      }
      if ($deep && !isset($visited[(string) $argument])) {
        $visited[(string) $argument] = true;
        $service = $this->container
          ->getDefinition((string) $argument);
        $arguments = array_merge($service
          ->getMethodCalls(), $service
          ->getArguments(), $service
          ->getProperties());
        if ($this
          ->hasReference($id, $arguments, $deep, $visited)) {
          return true;
        }
      }
    }
  }
  return false;
}