Yaffs site version 1.1
[yaffs-website] / web / modules / contrib / migrate_plus / src / Plugin / MigrationConfigDeriver.php
diff --git a/web/modules/contrib/migrate_plus/src/Plugin/MigrationConfigDeriver.php b/web/modules/contrib/migrate_plus/src/Plugin/MigrationConfigDeriver.php
new file mode 100644 (file)
index 0000000..0135444
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+namespace Drupal\migrate_plus\Plugin;
+
+use Drupal\Component\Plugin\Derivative\DeriverBase;
+use Drupal\migrate_plus\Entity\Migration;
+
+/**
+ * Expose migration entities in the active config store as derivative plugins.
+ */
+class MigrationConfigDeriver extends DeriverBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getDerivativeDefinitions($base_plugin_definition) {
+    // Always rederive from scratch, because changes may have been made without
+    // clearing our internal cache.
+    $this->derivatives = [];
+    $migrations = Migration::loadMultiple();
+    /** @var \Drupal\migrate_plus\Entity\MigrationInterface $migration */
+    foreach ($migrations as $id => $migration) {
+      $this->derivatives[$id] = $migration->toArray();
+    }
+    return $this->derivatives;
+  }
+
+}