You are here

protected function SqlContentEntityStorageSchema::initializeBaseTable in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php \Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema::initializeBaseTable()

Initializes common information for a base table.

Parameters

\Drupal\Core\Entity\ContentEntityTypeInterface $entity_type: The entity type.

Return value

array A partial schema array for the base table.

1 call to SqlContentEntityStorageSchema::initializeBaseTable()
SqlContentEntityStorageSchema::getEntitySchema in core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php
Gets the entity schema for the specified entity type.

File

core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php, line 849
Contains \Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema.

Class

SqlContentEntityStorageSchema
Defines a schema handler that supports revisionable, translatable entities.

Namespace

Drupal\Core\Entity\Sql

Code

protected function initializeBaseTable(ContentEntityTypeInterface $entity_type) {
  $entity_type_id = $entity_type
    ->id();
  $schema = array(
    'description' => "The base table for {$entity_type_id} entities.",
    'primary key' => array(
      $entity_type
        ->getKey('id'),
    ),
    'indexes' => array(),
    'foreign keys' => array(),
  );
  if ($entity_type
    ->hasKey('revision')) {
    $revision_key = $entity_type
      ->getKey('revision');
    $key_name = $this
      ->getEntityIndexName($entity_type, $revision_key);
    $schema['unique keys'][$key_name] = array(
      $revision_key,
    );
    $schema['foreign keys'][$entity_type_id . '__revision'] = array(
      'table' => $this->storage
        ->getRevisionTable(),
      'columns' => array(
        $revision_key => $revision_key,
      ),
    );
  }
  $this
    ->addTableDefaults($schema);
  return $schema;
}