You are here

protected function SqlContentEntityStorage::initTableLayout in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php \Drupal\Core\Entity\Sql\SqlContentEntityStorage::initTableLayout()

Initializes table name variables.

3 calls to SqlContentEntityStorage::initTableLayout()
SqlContentEntityStorage::onEntityTypeUpdate in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
Reacts to the update of the entity type.
SqlContentEntityStorage::setEntityType in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
Updates the wrapped entity type definition.
SqlContentEntityStorage::__construct in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
Constructs a SqlContentEntityStorage object.

File

core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php, line 173
Contains \Drupal\Core\Entity\Sql\SqlContentEntityStorage.

Class

SqlContentEntityStorage
A content entity database storage implementation.

Namespace

Drupal\Core\Entity\Sql

Code

protected function initTableLayout() {

  // Reset table field values to ensure changes in the entity type definition
  // are correctly reflected in the table layout.
  $this->tableMapping = NULL;
  $this->revisionKey = NULL;
  $this->revisionTable = NULL;
  $this->dataTable = NULL;
  $this->revisionDataTable = NULL;

  // @todo Remove table names from the entity type definition in
  //   https://www.drupal.org/node/2232465.
  $this->baseTable = $this->entityType
    ->getBaseTable() ?: $this->entityTypeId;
  $revisionable = $this->entityType
    ->isRevisionable();
  if ($revisionable) {
    $this->revisionKey = $this->entityType
      ->getKey('revision') ?: 'revision_id';
    $this->revisionTable = $this->entityType
      ->getRevisionTable() ?: $this->entityTypeId . '_revision';
  }
  $translatable = $this->entityType
    ->isTranslatable();
  if ($translatable) {
    $this->dataTable = $this->entityType
      ->getDataTable() ?: $this->entityTypeId . '_field_data';
    $this->langcodeKey = $this->entityType
      ->getKey('langcode');
    $this->defaultLangcodeKey = $this->entityType
      ->getKey('default_langcode');
  }
  if ($revisionable && $translatable) {
    $this->revisionDataTable = $this->entityType
      ->getRevisionDataTable() ?: $this->entityTypeId . '_field_revision';
  }
}