annotate core/modules/content_moderation/src/ContentModerationStateStorageSchema.php @ 4:a9cd425dd02b

Update, including to Drupal core 8.6.10
author Chris Cannam
date Thu, 28 Feb 2019 13:11:55 +0000
parents c75dbcec494b
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\content_moderation;
Chris@0 4
Chris@0 5 use Drupal\Core\Entity\ContentEntityTypeInterface;
Chris@0 6 use Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Defines the content moderation state schema handler.
Chris@0 10 */
Chris@0 11 class ContentModerationStateStorageSchema extends SqlContentEntityStorageSchema {
Chris@0 12
Chris@0 13 /**
Chris@0 14 * {@inheritdoc}
Chris@0 15 */
Chris@0 16 protected function getEntitySchema(ContentEntityTypeInterface $entity_type, $reset = FALSE) {
Chris@0 17 $schema = parent::getEntitySchema($entity_type, $reset);
Chris@0 18
Chris@0 19 // Creates unique keys to guarantee the integrity of the entity and to make
Chris@0 20 // the lookup in ModerationStateFieldItemList::getModerationState() fast.
Chris@0 21 $unique_keys = [
Chris@0 22 'content_entity_type_id',
Chris@0 23 'content_entity_id',
Chris@0 24 'content_entity_revision_id',
Chris@0 25 'workflow',
Chris@0 26 'langcode',
Chris@0 27 ];
Chris@4 28 if ($data_table = $this->storage->getDataTable()) {
Chris@4 29 $schema[$data_table]['unique keys'] += [
Chris@4 30 'content_moderation_state__lookup' => $unique_keys,
Chris@4 31 ];
Chris@4 32 }
Chris@4 33 if ($revision_data_table = $this->storage->getRevisionDataTable()) {
Chris@4 34 $schema[$revision_data_table]['unique keys'] += [
Chris@4 35 'content_moderation_state__lookup' => $unique_keys,
Chris@4 36 ];
Chris@4 37 }
Chris@0 38
Chris@0 39 return $schema;
Chris@0 40 }
Chris@0 41
Chris@0 42 }