function ServiceMap::resolveParentDefinition
1 call to ServiceMap::resolveParentDefinition()
- ServiceMap::setDrupalServices in vendor/
mglaman/ phpstan-drupal/ src/ Drupal/ ServiceMap.php
File
-
vendor/
mglaman/ phpstan-drupal/ src/ Drupal/ ServiceMap.php, line 79
Class
Namespace
mglaman\PHPStanDrupal\DrupalCode
private function resolveParentDefinition(string $parentId, array $serviceDefinition, array $drupalServices) : array {
$parentDefinition = $drupalServices[$parentId] ?? [];
if ([] === $parentDefinition) {
return $serviceDefinition;
}
if (isset($parentDefinition['parent'])) {
if (!isset($drupalServices[$parentDefinition['parent']])) {
return $serviceDefinition;
}
$parentDefinition = $this->resolveParentDefinition($parentDefinition['parent'], $drupalServices[$parentDefinition['parent']], $drupalServices);
}
if (isset($parentDefinition['class']) && !isset($serviceDefinition['class'])) {
$serviceDefinition['class'] = $parentDefinition['class'];
}
if (isset($parentDefinition['public']) && !isset($serviceDefinition['public'])) {
$serviceDefinition['public'] = $parentDefinition['public'];
}
return $serviceDefinition;
}