You are here

public function DomStrReplace::__construct in Migrate Plus 8.5

Same name and namespace in other branches
  1. 8.4 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

1 call to DomStrReplace::__construct()
DomMigrationLookup::__construct in src/Plugin/migrate/process/DomMigrationLookup.php
Constructs a \Drupal\Component\Plugin\PluginBase object.
1 method overrides DomStrReplace::__construct()
DomMigrationLookup::__construct in src/Plugin/migrate/process/DomMigrationLookup.php
Constructs a \Drupal\Component\Plugin\PluginBase object.

File

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

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 = [
    'xpath' => NULL,
    'mode' => [
      'attribute' => [
        'attribute_options' => NULL,
      ],
      'element' => [],
    ],
    '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 (!empty($possible_values) && !array_key_exists($this->configuration[$option_name], $possible_values)) {
      throw new InvalidPluginDefinitionException($this
        ->getPluginId(), sprintf('Configuration option "%s" only accepts the following values: %s.', $option_name, implode(', ', array_keys($possible_values))));
    }
  }
  $mode = $this->configuration['mode'];
  $mode_validation = $options_validation['mode'][$mode];
  foreach ($mode_validation as $option_name => $possible_values) {
    if (empty($this->configuration[$option_name])) {
      throw new InvalidPluginDefinitionException($this
        ->getPluginId(), "Configuration option '{$option_name}' is required for mode '{$mode}'.");
    }
    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)));
    }
  }
  $mode_validation = $options_validation['mode'][$this->configuration['mode']];
  foreach ($mode_validation as $option_name => $possible_values) {
    if (empty($this->configuration[$option_name])) {
      throw new InvalidPluginDefinitionException($this
        ->getPluginId(), "Configuration option '{$option_name}' is required for mode '{$mode}'.");
    }
    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)));
    }
  }
  $mode_validation = $options_validation['mode'][$this->configuration['mode']];
  foreach ($mode_validation as $option_name => $possible_values) {
    if (empty($this->configuration[$option_name])) {
      throw new InvalidPluginDefinitionException($this
        ->getPluginId(), "Configuration option '{$option_name}' is required for mode '{$mode}'.");
    }
    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)));
    }
  }
}