FieldConfigStorageBase.php in Drupal 9
File
core/lib/Drupal/Core/Field/FieldConfigStorageBase.php
View source
<?php
namespace Drupal\Core\Field;
use Drupal\Component\Plugin\Exception\PluginNotFoundException;
use Drupal\Core\Config\Entity\ConfigEntityStorage;
use Drupal\Core\Entity\EntityInterface;
abstract class FieldConfigStorageBase extends ConfigEntityStorage {
protected $fieldTypeManager;
protected function mapFromStorageRecords(array $records) {
foreach ($records as $id => &$record) {
try {
$class = $this->fieldTypeManager
->getPluginClass($record['field_type']);
} catch (PluginNotFoundException $e) {
$config_id = $this
->getPrefix() . $id;
throw new PluginNotFoundException($record['field_type'], "Unable to determine class for field type '{$record['field_type']}' found in the '{$config_id}' configuration", $e
->getCode(), $e);
}
$record['settings'] = $class::fieldSettingsFromConfigData($record['settings']);
}
return parent::mapFromStorageRecords($records);
}
protected function mapToStorageRecord(EntityInterface $entity) {
$record = parent::mapToStorageRecord($entity);
$class = $this->fieldTypeManager
->getPluginClass($record['field_type']);
$record['settings'] = $class::fieldSettingsToConfigData($record['settings']);
return $record;
}
}