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

Breadcrumb

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

function PhpDumper::collectLineage

3 calls to PhpDumper::collectLineage()
PhpDumper::addInlineRequires in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::addServiceInclude in vendor/symfony/dependency-injection/Dumper/PhpDumper.php
PhpDumper::generateProxyClasses in vendor/symfony/dependency-injection/Dumper/PhpDumper.php

File

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

Class

PhpDumper
PhpDumper dumps a service container as a PHP class.

Namespace

Symfony\Component\DependencyInjection\Dumper

Code

private function collectLineage(string $class, array &$lineage) : void {
    if (isset($lineage[$class])) {
        return;
    }
    if (!($r = $this->container
        ->getReflectionClass($class, false))) {
        return;
    }
    if (is_a($class, $this->baseClass, true)) {
        return;
    }
    $file = $r->getFileName();
    if (str_ends_with($file, ') : eval()\'d code')) {
        $file = substr($file, 0, strrpos($file, '(', -17));
    }
    if (!$file || $this->doExport($file) === ($exportedFile = $this->export($file))) {
        return;
    }
    $lineage[$class] = substr($exportedFile, 1, -1);
    if ($parent = $r->getParentClass()) {
        $this->collectLineage($parent->name, $lineage);
    }
    foreach ($r->getInterfaces() as $parent) {
        $this->collectLineage($parent->name, $lineage);
    }
    foreach ($r->getTraits() as $parent) {
        $this->collectLineage($parent->name, $lineage);
    }
    unset($lineage[$class]);
    $lineage[$class] = substr($exportedFile, 1, -1);
}
RSS feed
Powered by Drupal