Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. PhpDumper.php

function PhpDumper::isTrivialInstance

4 calls to PhpDumper::isTrivialInstance()
PhpDumper::addServiceInclude in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::addServices in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::generateServiceFiles in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::getServiceCall in vendor/symfony/dependency-injection/Dumper/PhpDumper.php

File

vendor/symfony/dependency-injection/Dumper/PhpDumper.php, line 711

Class

PhpDumper
PhpDumper dumps a service container as a PHP class.

Namespace

Symfony\Component\DependencyInjection\Dumper

Code

private function isTrivialInstance(Definition $definition) : bool {
    if ($definition->hasErrors()) {
        return true;
    }
    if ($definition->isSynthetic() || $definition->getFile() || $definition->getMethodCalls() || $definition->getProperties() || $definition->getConfigurator()) {
        return false;
    }
    if ($definition->isDeprecated() || $definition->isLazy() || $definition->getFactory() || 3 < \count($definition->getArguments())) {
        return false;
    }
    foreach ($definition->getArguments() as $arg) {
        if (!$arg || $arg instanceof Parameter) {
            continue;
        }
        if (\is_array($arg) && 3 >= \count($arg)) {
            foreach ($arg as $k => $v) {
                if ($this->dumpValue($k) !== $this->dumpValue($k, false)) {
                    return false;
                }
                if (!$v || $v instanceof Parameter) {
                    continue;
                }
                if ($v instanceof Reference && $this->container
                    ->has($id = (string) $v) && $this->container
                    ->findDefinition($id)
                    ->isSynthetic()) {
                    continue;
                }
                if (!\is_scalar($v) || $this->dumpValue($v) !== $this->dumpValue($v, false)) {
                    return false;
                }
            }
        }
        elseif ($arg instanceof Reference && $this->container
            ->has($id = (string) $arg) && $this->container
            ->findDefinition($id)
            ->isSynthetic()) {
            continue;
        }
        elseif (!\is_scalar($arg) || $this->dumpValue($arg) !== $this->dumpValue($arg, false)) {
            return false;
        }
    }
    return true;
}
RSS feed
Powered by Drupal