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\DumperCode
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);
}