annotate core/lib/Drupal/Component/Plugin/PluginBase.php @ 14:1fec387a4317

Update Drupal core to 8.5.2 via Composer
author Chris Cannam
date Mon, 23 Apr 2018 09:46:53 +0100
parents 4c8ae668cc8c
children 129ea1e6d783
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\Component\Plugin;
Chris@0 4
Chris@0 5 /**
Chris@0 6 * Base class for plugins wishing to support metadata inspection.
Chris@0 7 */
Chris@0 8 abstract class PluginBase implements PluginInspectionInterface, DerivativeInspectionInterface {
Chris@0 9
Chris@0 10 /**
Chris@0 11 * A string which is used to separate base plugin IDs from the derivative ID.
Chris@0 12 */
Chris@0 13 const DERIVATIVE_SEPARATOR = ':';
Chris@0 14
Chris@0 15 /**
Chris@0 16 * The plugin_id.
Chris@0 17 *
Chris@0 18 * @var string
Chris@0 19 */
Chris@0 20 protected $pluginId;
Chris@0 21
Chris@0 22 /**
Chris@0 23 * The plugin implementation definition.
Chris@0 24 *
Chris@0 25 * @var array
Chris@0 26 */
Chris@0 27 protected $pluginDefinition;
Chris@0 28
Chris@0 29 /**
Chris@0 30 * Configuration information passed into the plugin.
Chris@0 31 *
Chris@0 32 * When using an interface like
Chris@0 33 * \Drupal\Component\Plugin\ConfigurablePluginInterface, this is where the
Chris@0 34 * configuration should be stored.
Chris@0 35 *
Chris@0 36 * Plugin configuration is optional, so plugin implementations must provide
Chris@0 37 * their own setters and getters.
Chris@0 38 *
Chris@0 39 * @var array
Chris@0 40 */
Chris@0 41 protected $configuration;
Chris@0 42
Chris@0 43 /**
Chris@0 44 * Constructs a Drupal\Component\Plugin\PluginBase object.
Chris@0 45 *
Chris@0 46 * @param array $configuration
Chris@0 47 * A configuration array containing information about the plugin instance.
Chris@0 48 * @param string $plugin_id
Chris@0 49 * The plugin_id for the plugin instance.
Chris@0 50 * @param mixed $plugin_definition
Chris@0 51 * The plugin implementation definition.
Chris@0 52 */
Chris@0 53 public function __construct(array $configuration, $plugin_id, $plugin_definition) {
Chris@0 54 $this->configuration = $configuration;
Chris@0 55 $this->pluginId = $plugin_id;
Chris@0 56 $this->pluginDefinition = $plugin_definition;
Chris@0 57 }
Chris@0 58
Chris@0 59 /**
Chris@0 60 * {@inheritdoc}
Chris@0 61 */
Chris@0 62 public function getPluginId() {
Chris@0 63 return $this->pluginId;
Chris@0 64 }
Chris@0 65
Chris@0 66 /**
Chris@0 67 * {@inheritdoc}
Chris@0 68 */
Chris@0 69 public function getBaseId() {
Chris@0 70 $plugin_id = $this->getPluginId();
Chris@0 71 if (strpos($plugin_id, static::DERIVATIVE_SEPARATOR)) {
Chris@0 72 list($plugin_id) = explode(static::DERIVATIVE_SEPARATOR, $plugin_id, 2);
Chris@0 73 }
Chris@0 74 return $plugin_id;
Chris@0 75 }
Chris@0 76
Chris@0 77 /**
Chris@0 78 * {@inheritdoc}
Chris@0 79 */
Chris@0 80 public function getDerivativeId() {
Chris@0 81 $plugin_id = $this->getPluginId();
Chris@0 82 $derivative_id = NULL;
Chris@0 83 if (strpos($plugin_id, static::DERIVATIVE_SEPARATOR)) {
Chris@0 84 list(, $derivative_id) = explode(static::DERIVATIVE_SEPARATOR, $plugin_id, 2);
Chris@0 85 }
Chris@0 86 return $derivative_id;
Chris@0 87 }
Chris@0 88
Chris@0 89 /**
Chris@0 90 * {@inheritdoc}
Chris@0 91 */
Chris@0 92 public function getPluginDefinition() {
Chris@0 93 return $this->pluginDefinition;
Chris@0 94 }
Chris@0 95
Chris@0 96 }