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

Breadcrumb

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

function PhpDumper::getClasses

4 calls to PhpDumper::getClasses()
PhpDumper::addInlineRequires in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::addService in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::addServiceInclude in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::addServices in vendor/symfony/dependency-injection/Dumper/PhpDumper.php

File

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

Class

PhpDumper
PhpDumper dumps a service container as a PHP class.

Namespace

Symfony\Component\DependencyInjection\Dumper

Code

private function getClasses(Definition $definition, string $id) : array {
    $classes = [];
    $resolve = $this->container
        ->getParameterBag()
        ->resolveValue(...);
    while ($definition instanceof Definition) {
        foreach ($definition->getTag($this->preloadTags[0]) as $tag) {
            if (!isset($tag['class'])) {
                throw new InvalidArgumentException(\sprintf('Missing attribute "class" on tag "%s" for service "%s".', $this->preloadTags[0], $id));
            }
            $classes[] = trim($tag['class'], '\\');
        }
        if ($class = $definition->getClass()) {
            $classes[] = trim($resolve($class), '\\');
        }
        $factory = $definition->getFactory();
        if (!\is_array($factory)) {
            $factory = [
                $factory,
            ];
        }
        if (\is_string($factory[0])) {
            $factory[0] = $resolve($factory[0]);
            if (false !== ($i = strrpos($factory[0], '::'))) {
                $factory[0] = substr($factory[0], 0, $i);
            }
            $classes[] = trim($factory[0], '\\');
        }
        $definition = $factory[0];
    }
    return $classes;
}
RSS feed
Powered by Drupal