Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / lib / Drupal / Core / Plugin / FilteredPluginManagerInterface.php
diff --git a/web/core/lib/Drupal/Core/Plugin/FilteredPluginManagerInterface.php b/web/core/lib/Drupal/Core/Plugin/FilteredPluginManagerInterface.php
new file mode 100644 (file)
index 0000000..0404a66
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+namespace Drupal\Core\Plugin;
+
+use Drupal\Component\Plugin\PluginManagerInterface;
+
+/**
+ * Provides an interface for plugin managers that allow filtering definitions.
+ */
+interface FilteredPluginManagerInterface extends PluginManagerInterface {
+
+  /**
+   * Gets the plugin definitions for a given type and consumer and filters them.
+   *
+   * This allows modules and themes to alter plugin definitions at runtime,
+   * which is useful for tasks like hiding specific plugins from a particular
+   * user interface.
+   *
+   * @param string $consumer
+   *   A string identifying the consumer of these plugin definitions.
+   * @param \Drupal\Component\Plugin\Context\ContextInterface[]|null $contexts
+   *   (optional) Either an array of contexts to use for filtering, or NULL to
+   *   not filter by contexts.
+   * @param mixed[] $extra
+   *   (optional) An associative array containing additional information
+   *   provided by the code requesting the filtered definitions.
+   *
+   * @return \Drupal\Component\Plugin\Definition\PluginDefinitionInterface[]|array[]
+   *   An array of plugin definitions that are filtered.
+   *
+   * @see hook_plugin_filter_TYPE_alter()
+   * @see hook_plugin_filter_TYPE__CONSUMER_alter()
+   */
+  public function getFilteredDefinitions($consumer, $contexts = NULL, array $extra = []);
+
+}