You are here

public function DomStrReplace::__construct in Migrate Plus 8.4

Same name and namespace in other branches
  1. 8.5 src/Plugin/migrate/process/DomStrReplace.php \Drupal\migrate_plus\Plugin\migrate\process\DomStrReplace::__construct()

Constructs a \Drupal\Component\Plugin\PluginBase object.

Parameters

array $configuration: A configuration array containing information about the plugin instance.

string $plugin_id: The plugin_id for the plugin instance.

mixed $plugin_definition: The plugin implementation definition.

Overrides PluginBase::__construct

File

src/Plugin/migrate/process/DomStrReplace.php, line 69

Class

DomStrReplace
String replacements on a source dom.

Namespace

Drupal\migrate_plus\Plugin\migrate\process

Code

public function __construct(array $configuration, $plugin_id, $plugin_definition) {
  parent::__construct($configuration, $plugin_id, $plugin_definition);
  $this->configuration += [
    'case_insensitive' => FALSE,
    'regex' => FALSE,
  ];
  $options_validation = [
    'expression' => NULL,
    'mode' => [
      'attribute',
    ],
    // @todo Move out once another mode is supported.
    // @see https://www.drupal.org/project/migrate_plus/issues/3042833
    'attribute_options' => NULL,
    'search' => NULL,
    'replace' => NULL,
  ];
  foreach ($options_validation as $option_name => $possible_values) {
    if (empty($this->configuration[$option_name])) {
      throw new InvalidPluginDefinitionException($this
        ->getPluginId(), "Configuration option '{$option_name}' is required.");
    }
    if (!is_null($possible_values) && !in_array($this->configuration[$option_name], $possible_values)) {
      throw new InvalidPluginDefinitionException($this
        ->getPluginId(), sprintf('Configuration option "%s" only accepts the following values: %s.', $option_name, implode(', ', $possible_values)));
    }
  }
}