AnnotatedPluginBase.php in Markdown 8.2
File
src/Plugin/Markdown/AnnotatedPluginBase.php
View source
<?php
namespace Drupal\markdown\Plugin\Markdown;
use Drupal\Component\Utility\DiffArray;
use Drupal\Core\Plugin\PluginBase as CoreBasePlugin;
use Symfony\Component\DependencyInjection\ContainerAwareTrait;
use Symfony\Component\DependencyInjection\ContainerInterface;
abstract class AnnotatedPluginBase extends CoreBasePlugin implements AnnotatedPluginInterface {
use ContainerAwareTrait;
protected $originalPluginId;
public function __construct(array $configuration, $plugin_id, $plugin_definition) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->originalPluginId = isset($configuration['original_plugin_id']) ? $configuration['original_plugin_id'] : $plugin_id;
$this
->setConfiguration($configuration);
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
$instance = new static($configuration, $plugin_id, $plugin_definition);
$instance
->setContainer($container);
return $instance;
}
public function __toString() {
return $this
->getPluginId();
}
public function defaultConfiguration() {
return [];
}
public function getConfigurationOverrides(array $configuration = NULL) {
if (!isset($configuration)) {
$configuration = $this->configuration;
}
return DiffArray::diffAssocRecursive($configuration, $this
->defaultConfiguration());
}
public function getDescription() {
return $this->pluginDefinition->description;
}
public function getConfiguration() {
$configuration['id'] = $this
->getPluginId();
$configuration['weight'] = $this
->getWeight();
return $configuration;
}
public function getLabel() {
return $this->pluginDefinition->label ?: $this->pluginDefinition
->getId();
}
public function getProvider() {
return $this->pluginDefinition
->getProvider();
}
public function getOriginalPluginId() {
return $this->originalPluginId;
}
public function getWeight() {
return isset($this->configuration['weight']) ? (int) $this->configuration['weight'] : $this->pluginDefinition->weight;
}
public function setConfiguration(array $configuration) {
$configuration = array_filter($configuration, function ($value) {
return $value !== NULL;
});
$this->configuration = $configuration + $this
->defaultConfiguration();
}
}