DefaultTableMapping
class DefaultTableMapping implements TableMappingInterface (View source)
Defines a default table mapping class.
Properties
| protected ContentEntityTypeInterface | $entityType | The entity type definition. |
|
| protected FieldStorageDefinitionInterface[] | $fieldStorageDefinitions | The field storage definitions of this mapping. |
|
| protected string | $prefix | The prefix to be used by all the tables of this mapping. |
|
| protected string | $baseTable | The base table of the entity. |
|
| protected string | $revisionTable | The table that stores revisions, if the entity supports revisions. |
|
| protected string | $dataTable | The table that stores field data, if the entity has multilingual support. |
|
| protected string | $revisionDataTable | The table that stores revision field data if the entity supports revisions and has multilingual support. |
|
| protected array[] | $fieldNames | A list of field names per table. |
|
| protected array[] | $extraColumns | A list of database columns which store denormalized data per table. |
|
| protected array[] | $columnMapping | A mapping of column names per field name. |
|
| protected array[] | $allColumns | A list of all database columns per table. |
Methods
Constructs a DefaultTableMapping.
Initializes the table mapping.
Gets the base table name.
Gets the revision table name.
Gets the data table name.
Gets the revision data table name.
Gets a list of table names for this mapping.
Gets a list of all database columns for a given table.
Gets a list of names for entity fields stored in the specified table.
Gets the table name for a given column.
Gets all the table names in which an entity field is stored.
Gets a mapping of field columns to database columns for a given field.
Generates a column name for a field property.
Adds field columns for a table to the table mapping.
Gets a list of extra database columns, which store denormalized data.
Adds extra columns for a table to the table mapping.
Checks whether the given field can be stored in a shared table.
Checks whether the given field has to be stored in a dedicated table.
Gets a list of dedicated table names for this mapping.
Gets the list of columns that can not be used as field type columns.
Generates a table name for a field data table.
Generates a table name for a field revision archive table.
Generates a safe and unambiguous field table name.
Details
__construct(ContentEntityTypeInterface $entity_type, array $storage_definitions, string $prefix = '')
Constructs a DefaultTableMapping.
static DefaultTableMapping
create(ContentEntityTypeInterface $entity_type, array $storage_definitions, string $prefix = '')
| internal |
Initializes the table mapping.
string
getBaseTable()
| internal |
Gets the base table name.
string|null
getRevisionTable()
| internal |
Gets the revision table name.
string|null
getDataTable()
| internal |
Gets the data table name.
string|null
getRevisionDataTable()
| internal |
Gets the revision data table name.
string[]
getTableNames()
Gets a list of table names for this mapping.
string[]
getAllColumns(string $table_name)
Gets a list of all database columns for a given table.
string[]
getFieldNames(string $table_name)
Gets a list of names for entity fields stored in the specified table.
The return list is contains the entity field names, not database field (i.e. column) names. To get the mapping of specific entity field to database columns use ::getColumnNames().
string
getFieldTableName(string $field_name)
Gets the table name for a given column.
string[]
getAllFieldTableNames(string $field_name)
Gets all the table names in which an entity field is stored.
The returned table names are ordered by the amount of data stored in each table. For example, a revisionable and translatable entity type which uses core's default table mapping strategy would return the table names for the entity ID field in the following order:
- base table
- data table
- revision table
- revision data table
string[]
getColumnNames(string $field_name)
Gets a mapping of field columns to database columns for a given field.
string
getFieldColumnName(FieldStorageDefinitionInterface $storage_definition, string $property_name)
Generates a column name for a field property.
$this
setFieldNames(string $table_name, array $field_names)
| internal |
Adds field columns for a table to the table mapping.
string[]
getExtraColumns(string $table_name)
Gets a list of extra database columns, which store denormalized data.
These database columns do not belong to any entity fields. Any normalized data that is stored should be associated with an entity field.
$this
setExtraColumns(string $table_name, array $column_names)
| internal |
Adds extra columns for a table to the table mapping.
bool
allowsSharedTableStorage(FieldStorageDefinitionInterface $storage_definition)
Checks whether the given field can be stored in a shared table.
bool
requiresDedicatedTableStorage(FieldStorageDefinitionInterface $storage_definition)
Checks whether the given field has to be stored in a dedicated table.
string[]
getDedicatedTableNames()
Gets a list of dedicated table names for this mapping.
array
getReservedColumns()
Gets the list of columns that can not be used as field type columns.
string
getDedicatedDataTableName(FieldStorageDefinitionInterface $storage_definition, bool $is_deleted = FALSE)
Generates a table name for a field data table.
string
getDedicatedRevisionTableName(FieldStorageDefinitionInterface $storage_definition, bool $is_deleted = FALSE)
Generates a table name for a field revision archive table.
protected string
generateFieldTableName(FieldStorageDefinitionInterface $storage_definition, bool $revision)
Generates a safe and unambiguous field table name.
The method accounts for a maximum table name length of 64 characters, and takes care of disambiguation.