protected function getInheritedConfiguration(array $row)
{
$tableName = $this->getTableName($row);
$tableFieldName = $this->getFieldName($row);
$cacheKey = $tableName . $tableFieldName . $row['uid'];
if (false === isset(self::$cache[$cacheKey])) {
$tree = $this->getInheritanceTree($row);
$data = [];
foreach ($tree as $branch) {
/** @var SubPageProvider $provider */
$provider = $this->pageConfigurationService->resolvePrimaryConfigurationProvider($this->tableName, self::FIELD_NAME_SUB, $branch);
$form = $provider->getForm($branch);
if (null === $form) {
continue;
}
$fields = $form->getFields();
$values = $provider->getFlexFormValuesSingle($branch);
foreach ($fields as $field) {
$values = $this->unsetInheritedValues($field, $values);
}
$data = RecursiveArrayUtility::merge($data, $values);
}
self::$cache[$cacheKey] = $data;
}
return self::$cache[$cacheKey];
}