Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. DestinationBase.php

class DestinationBase

Base class for migrate destination classes.

Migrate destination plugins perform the import operation of the migration. Destination plugins extend this abstract base class. A destination plugin must implement at least fields(), getIds() and import() methods. Destination plugins can also support rollback operations. For more information, refer to \Drupal\migrate\Plugin\MigrateDestinationInterface.

Hierarchy

  • class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
    • class \Drupal\Core\Plugin\PluginBase extends \Drupal\Component\Plugin\PluginBase uses \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait
      • class \Drupal\migrate\Plugin\migrate\destination\DestinationBase extends \Drupal\Core\Plugin\PluginBase implements \Drupal\migrate\Plugin\MigrateDestinationInterface, \Drupal\migrate\Plugin\RequirementsInterface

Expanded class hierarchy of DestinationBase

See also

\Drupal\migrate\Plugin\MigrateDestinationPluginManager

\Drupal\migrate\Attribute\MigrateDestination

Plugin API

Related topics

Migrate API
Overview of the Migrate API, which migrates data into Drupal.
4 files declare their use of DestinationBase
BlockedIp.php in core/modules/ban/src/Plugin/migrate/destination/BlockedIp.php
ShortcutSetUsers.php in core/modules/shortcut/src/Plugin/migrate/destination/ShortcutSetUsers.php
ThemeSettings.php in core/modules/system/src/Plugin/migrate/destination/d7/ThemeSettings.php
UserData.php in core/modules/user/src/Plugin/migrate/destination/UserData.php

File

core/modules/migrate/src/Plugin/migrate/destination/DestinationBase.php, line 29

Namespace

Drupal\migrate\Plugin\migrate\destination
View source
abstract class DestinationBase extends PluginBase implements MigrateDestinationInterface, RequirementsInterface {
    
    /**
     * Indicates whether the destination can be rolled back.
     *
     * @var bool
     */
    protected $supportsRollback = FALSE;
    
    /**
     * The rollback action to be saved for the last imported item.
     *
     * @var int
     */
    protected $rollbackAction = MigrateIdMapInterface::ROLLBACK_DELETE;
    
    /**
     * The migration.
     *
     * @var \Drupal\migrate\Plugin\MigrationInterface
     */
    protected $migration;
    
    /**
     * Constructs an entity destination plugin.
     *
     * @param array $configuration
     *   A configuration array containing information about the plugin instance.
     * @param string $plugin_id
     *   The plugin ID for the plugin instance.
     * @param mixed $plugin_definition
     *   The plugin implementation definition.
     * @param \Drupal\migrate\Plugin\MigrationInterface $migration
     *   The migration.
     */
    public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) {
        parent::__construct($configuration, $plugin_id, $plugin_definition);
        $this->migration = $migration;
    }
    
    /**
     * {@inheritdoc}
     */
    public function rollbackAction() {
        return $this->rollbackAction;
    }
    
    /**
     * {@inheritdoc}
     */
    public function checkRequirements() {
        if (empty($this->pluginDefinition['requirements_met'])) {
            throw new RequirementsException(sprintf("Destination plugin '%s' did not meet the requirements", $this->pluginId));
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public function rollback(array $destination_identifier) {
        // By default we do nothing.
    }
    
    /**
     * {@inheritdoc}
     */
    public function supportsRollback() {
        return $this->supportsRollback;
    }
    
    /**
     * For a destination item being updated, set the appropriate rollback action.
     *
     * @param array $id_map
     *   The map row data for the item.
     * @param int $update_action
     *   The rollback action to take if we are updating an existing item.
     */
    protected function setRollbackAction(array $id_map, $update_action = MigrateIdMapInterface::ROLLBACK_PRESERVE) {
        // If the entity we're updating was previously migrated by us, preserve the
        // existing rollback action.
        if (isset($id_map['sourceid1'])) {
            $this->rollbackAction = $id_map['rollback_action'];
        }
        else {
            $this->rollbackAction = $update_action;
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public function getDestinationModule() {
        if (!empty($this->configuration['destination_module'])) {
            return $this->configuration['destination_module'];
        }
        if (!empty($this->pluginDefinition['destination_module'])) {
            return $this->pluginDefinition['destination_module'];
        }
        if (is_string($this->migration->provider)) {
            return $this->migration->provider;
        }
        else {
            return reset($this->migration->provider);
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
DestinationBase::$migration protected property The migration.
DestinationBase::$rollbackAction protected property The rollback action to be saved for the last imported item.
DestinationBase::$supportsRollback protected property Indicates whether the destination can be rolled back.
DestinationBase::checkRequirements public function Checks if requirements for this plugin are OK. Overrides RequirementsInterface::checkRequirements
DestinationBase::getDestinationModule public function Gets the destination module handling the destination data. Overrides MigrateDestinationInterface::getDestinationModule 1
DestinationBase::rollback public function Delete the specified destination object from the target Drupal. Overrides MigrateDestinationInterface::rollback 2
DestinationBase::rollbackAction public function The rollback action for the last imported item. Overrides MigrateDestinationInterface::rollbackAction
DestinationBase::setRollbackAction protected function For a destination item being updated, set the appropriate rollback action.
DestinationBase::supportsRollback public function Whether the destination can be rolled back or not. Overrides MigrateDestinationInterface::supportsRollback
DestinationBase::__construct public function Constructs an entity destination plugin. 7
MigrateDestinationInterface::fields public function Returns an array of destination fields. 8
MigrateDestinationInterface::getIds public function Gets the destination IDs. 9
MigrateDestinationInterface::import public function Import the row. 9
PluginInspectionInterface::getPluginDefinition public function Gets the definition of the plugin implementation. 5
PluginInspectionInterface::getPluginId public function Gets the plugin ID of the plugin instance. 2
RSS feed
Powered by Drupal