2015-08-17 17:00:26 -07:00
< ? php
namespace Drupal\Component\Plugin ;
/**
* Base class for plugins wishing to support metadata inspection .
*/
abstract class PluginBase implements PluginInspectionInterface , DerivativeInspectionInterface {
/**
* A string which is used to separate base plugin IDs from the derivative ID .
*/
const DERIVATIVE_SEPARATOR = ':' ;
/**
* The plugin_id .
*
* @ var string
*/
protected $pluginId ;
/**
* The plugin implementation definition .
*
* @ var array
*/
protected $pluginDefinition ;
/**
* Configuration information passed into the plugin .
*
* When using an interface like
* \Drupal\Component\Plugin\ConfigurablePluginInterface , this is where the
* configuration should be stored .
*
* Plugin configuration is optional , so plugin implementations must provide
* their own setters and getters .
*
* @ var array
*/
protected $configuration ;
/**
* Constructs a Drupal\Component\Plugin\PluginBase object .
*
* @ param array $configuration
* A configuration array containing information about the plugin instance .
* @ param string $plugin_id
* The plugin_id for the plugin instance .
* @ param mixed $plugin_definition
* The plugin implementation definition .
*/
public function __construct ( array $configuration , $plugin_id , $plugin_definition ) {
$this -> configuration = $configuration ;
$this -> pluginId = $plugin_id ;
$this -> pluginDefinition = $plugin_definition ;
}
/**
* { @ inheritdoc }
*/
public function getPluginId () {
return $this -> pluginId ;
}
/**
* { @ inheritdoc }
*/
public function getBaseId () {
$plugin_id = $this -> getPluginId ();
if ( strpos ( $plugin_id , static :: DERIVATIVE_SEPARATOR )) {
list ( $plugin_id ) = explode ( static :: DERIVATIVE_SEPARATOR , $plugin_id , 2 );
}
return $plugin_id ;
}
/**
* { @ inheritdoc }
*/
public function getDerivativeId () {
$plugin_id = $this -> getPluginId ();
$derivative_id = NULL ;
if ( strpos ( $plugin_id , static :: DERIVATIVE_SEPARATOR )) {
list (, $derivative_id ) = explode ( static :: DERIVATIVE_SEPARATOR , $plugin_id , 2 );
}
return $derivative_id ;
}
/**
* { @ inheritdoc }
*/
public function getPluginDefinition () {
return $this -> pluginDefinition ;
}
2016-06-02 15:56:09 -07:00
2015-08-17 17:00:26 -07:00
}