diff core/lib/Drupal/Component/Plugin/Derivative/DeriverInterface.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 129ea1e6d783
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/lib/Drupal/Component/Plugin/Derivative/DeriverInterface.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,42 @@
+<?php
+
+namespace Drupal\Component\Plugin\Derivative;
+
+/**
+ * Provides additional plugin definitions based on an existing definition.
+ *
+ * @ingroup plugin_api
+ */
+interface DeriverInterface {
+
+  /**
+   * Gets the definition of a derivative plugin.
+   *
+   * @param string $derivative_id
+   *   The derivative id. The id must uniquely identify the derivative within a
+   *   given base plugin, but derivative ids can be reused across base plugins.
+   * @param mixed $base_plugin_definition
+   *   The definition of the base plugin from which the derivative plugin
+   *   is derived. It is maybe an entire object or just some array, depending
+   *   on the discovery mechanism.
+   *
+   * @return array
+   *   The full definition array of the derivative plugin, typically a merge of
+   *   $base_plugin_definition with extra derivative-specific information. NULL
+   *   if the derivative doesn't exist.
+   */
+  public function getDerivativeDefinition($derivative_id, $base_plugin_definition);
+
+  /**
+   * Gets the definition of all derivatives of a base plugin.
+   *
+   * @param array $base_plugin_definition
+   *   The definition array of the base plugin.
+   * @return array
+   *   An array of full derivative definitions keyed on derivative id.
+   *
+   * @see getDerivativeDefinition()
+   */
+  public function getDerivativeDefinitions($base_plugin_definition);
+
+}