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 }
|