function EntityConfigBase::import

Same name and namespace in other branches
  1. 9 core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php \Drupal\migrate\Plugin\migrate\destination\EntityConfigBase::import()
  2. 10 core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php \Drupal\migrate\Plugin\migrate\destination\EntityConfigBase::import()
  3. 11.x core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php \Drupal\migrate\Plugin\migrate\destination\EntityConfigBase::import()

Overrides MigrateDestinationInterface::import

3 calls to EntityConfigBase::import()
EntityCommentType::import in core/modules/comment/src/Plugin/migrate/destination/EntityCommentType.php
Import the row.
EntityNodeType::import in core/modules/node/src/Plugin/migrate/destination/EntityNodeType.php
Import the row.
EntitySearchPage::import in core/modules/search/src/Plugin/migrate/destination/EntitySearchPage.php
Import the row.
4 methods override EntityConfigBase::import()
EntityCommentType::import in core/modules/comment/src/Plugin/migrate/destination/EntityCommentType.php
Import the row.
EntityImageStyle::import in core/modules/image/src/Plugin/migrate/destination/EntityImageStyle.php
Import the row.
EntityNodeType::import in core/modules/node/src/Plugin/migrate/destination/EntityNodeType.php
Import the row.
EntitySearchPage::import in core/modules/search/src/Plugin/migrate/destination/EntitySearchPage.php
Import the row.

File

core/modules/migrate/src/Plugin/migrate/destination/EntityConfigBase.php, line 125

Class

EntityConfigBase
Base destination class for importing configuration entities.

Namespace

Drupal\migrate\Plugin\migrate\destination

Code

public function import(Row $row, array $old_destination_id_values = []) {
    if ($row->isStub()) {
        throw new MigrateException('Config entities can not be stubbed.');
    }
    $this->rollbackAction = MigrateIdMapInterface::ROLLBACK_DELETE;
    $ids = $this->getIds();
    $id_key = $this->getKey('id');
    if (count($ids) > 1) {
        // Ids is keyed by the key name so grab the keys.
        $id_keys = array_keys($ids);
        if (!$row->getDestinationProperty($id_key)) {
            // Set the ID into the destination in for form "val1.val2.val3".
            $row->setDestinationProperty($id_key, $this->generateId($row, $id_keys));
        }
    }
    $entity = $this->getEntity($row, $old_destination_id_values);
    // Translations are already saved in updateEntity by configuration override.
    if (!$this->isTranslationDestination()) {
        $entity->save();
    }
    if (count($ids) > 1) {
        // This can only be a config entity, content entities have their ID key
        // and that's it.
        $return = [];
        foreach ($id_keys as $id_key) {
            if ($this->isTranslationDestination() && $id_key == 'langcode') {
                // Config entities do not have a language property, get the language
                // code from the destination.
                $return[] = $row->getDestinationProperty($id_key);
            }
            else {
                $return[] = $entity->get($id_key);
            }
        }
        return $return;
    }
    return [
        $entity->id(),
    ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.