abstract class BaseExtension in Markdown 8.2
Same name in this branch
- 8.2 src/Plugin/Markdown/BaseExtension.php \Drupal\markdown\Plugin\Markdown\BaseExtension
- 8.2 src/Plugin/Markdown/CommonMark/BaseExtension.php \Drupal\markdown\Plugin\Markdown\CommonMark\BaseExtension
Base class for markdown extensions.
@property \Drupal\markdown\Annotation\MarkdownExtension $pluginDefinition @method \Drupal\markdown\Annotation\MarkdownExtension getPluginDefinition()
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\markdown\Plugin\Markdown\AnnotatedPluginBase implements AnnotatedPluginInterface uses \Symfony\Component\DependencyInjection\ContainerAwareTrait
- class \Drupal\markdown\Plugin\Markdown\InstallablePluginBase implements InstallablePluginInterface uses PluginDependencyTrait, MoreInfoTrait
- class \Drupal\markdown\Plugin\Markdown\BaseExtension implements ExtensionInterface uses EnabledPluginTrait
- class \Drupal\markdown\Plugin\Markdown\InstallablePluginBase implements InstallablePluginInterface uses PluginDependencyTrait, MoreInfoTrait
- class \Drupal\markdown\Plugin\Markdown\AnnotatedPluginBase implements AnnotatedPluginInterface uses \Symfony\Component\DependencyInjection\ContainerAwareTrait
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of BaseExtension
1 file declares its use of BaseExtension
- BaseExtension.php in src/
Plugin/ Markdown/ CommonMark/ BaseExtension.php
1 string reference to 'BaseExtension'
- markdown.data_types.schema.yml in config/
schema/ markdown.data_types.schema.yml - config/schema/markdown.data_types.schema.yml
File
- src/
Plugin/ Markdown/ BaseExtension.php, line 19
Namespace
Drupal\markdown\Plugin\MarkdownView source
abstract class BaseExtension extends InstallablePluginBase implements ExtensionInterface {
use EnabledPluginTrait;
/**
* {@inheritdoc}
*/
public function enabledByDefault() {
return FALSE;
}
/**
* Validates extension settings.
*
* @param array $settings
* The extension settings to validate.
* @param \Symfony\Component\Validator\Context\ExecutionContextInterface $context
* The validation execution context.
*/
public static function validateSettings(array $settings, ExecutionContextInterface $context) {
try {
$object = $context
->getObject();
$parent = $object instanceof Mapping ? $object
->getParent() : NULL;
$extensionId = $parent instanceof Mapping && ($id = $parent
->get('id')) ? $id
->getValue() : NULL;
$extensionManager = ExtensionManager::create();
if (!$extensionId || !$extensionManager
->hasDefinition($extensionId)) {
throw new \RuntimeException(sprintf('Unknown markdown extension: "%s"', $extensionId));
}
$extension = $extensionManager
->createInstance($extensionId);
// Immediately return if extension doesn't have any settings.
if (!$extension instanceof SettingsInterface) {
return;
}
$defaultSettings = $extension::defaultSettings($extension
->getPluginDefinition());
$unknownSettings = array_keys(array_diff_key($settings, $defaultSettings));
if ($unknownSettings) {
throw new \RuntimeException(sprintf('Unknown extension settings: %s', implode(', ', $unknownSettings)));
}
} catch (\RuntimeException $exception) {
$context
->addViolation($exception
->getMessage());
}
}
/**
* {@inheritdoc}
*/
public function getConfiguration() {
$configuration = parent::getConfiguration();
// Only provide settings if extension is enabled.
if ($this instanceof SettingsInterface && !$this
->isEnabled()) {
$configuration['settings'] = [];
}
return $configuration;
}
/**
* {@inheritdoc}
*/
public function isBundled() {
if (($parser = $this
->getParser()) && $parser instanceof ExtensibleParserInterface) {
return in_array($this
->getPluginId(), $parser
->getBundledExtensionIds(), TRUE);
}
return FALSE;
}
/**
* {@inheritdoc}
*/
public function requires() {
$extensionRequirements = $this->pluginDefinition
->getRequirementsByType('extension');
return array_map(function ($requirement) {
return $requirement
->getTypeId();
}, $extensionRequirements);
}
/**
* {@inheritdoc}
*/
public function requiredBy() {
// @todo Figure out a better way to handle this.
return isset($this->pluginDefinition['_requiredBy']) ? $this->pluginDefinition['_requiredBy'] : [];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AnnotatedPluginBase:: |
protected | property | The original plugin_id that was called, not a fallback identifier. | |
AnnotatedPluginBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
AnnotatedPluginBase:: |
public | function |
Retrieves the configuration overrides for the plugin. Overrides AnnotatedPluginInterface:: |
|
AnnotatedPluginBase:: |
public | function |
Retrieves the description of the plugin, if set. Overrides AnnotatedPluginInterface:: |
|
AnnotatedPluginBase:: |
public | function |
Retrieves the original plugin identifier. Overrides AnnotatedPluginInterface:: |
|
AnnotatedPluginBase:: |
public | function |
Returns the provider (extension name) of the plugin. Overrides AnnotatedPluginInterface:: |
|
AnnotatedPluginBase:: |
public | function |
Returns the weight of the plugin (used for sorting). Overrides AnnotatedPluginInterface:: |
|
AnnotatedPluginBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
AnnotatedPluginBase:: |
public | function | ||
BaseExtension:: |
public | function |
Indicates the default "enabled" state. Overrides EnabledPluginTrait:: |
|
BaseExtension:: |
public | function |
Gets this plugin's configuration. Overrides InstallablePluginBase:: |
1 |
BaseExtension:: |
public | function |
Indicates whether the extension is automatically installed with the parser. Overrides ExtensionInterface:: |
|
BaseExtension:: |
public | function |
Retrieves identifiers of extensions that are required by this extension. Overrides ExtensionInterface:: |
|
BaseExtension:: |
public | function |
Retrieves identifiers of extensions that this extension requires. Overrides ExtensionInterface:: |
|
BaseExtension:: |
public static | function | Validates extension settings. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. | |
EnabledPluginTrait:: |
public | function | ||
InstallablePluginBase:: |
protected | property | The config for this plugin. | |
InstallablePluginBase:: |
public | function |
Builds a display for a library. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Builds a display status based on the current state of the plugin. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the config instance for this plugin. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
protected static | function | ||
InstallablePluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides AnnotatedPluginBase:: |
1 |
InstallablePluginBase:: |
public | function | Retrieves available installs. | |
InstallablePluginBase:: |
protected | function | Returns the configuration name for the plugin. | |
InstallablePluginBase:: |
protected | function | Determines the configuration sort order by weight. | 1 |
InstallablePluginBase:: |
public | function | Retrieves the container. | |
InstallablePluginBase:: |
public | function |
Retrieves the deprecation message, if any. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the experimental message. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the composer package name of the installable library, if any. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the installed library used by the plugin. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Displays the human-readable label of the plugin. Overrides AnnotatedPluginBase:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the plugin as a link using its label and URL. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
@TODO: Refactor to use variadic parameters. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the class name of the object defined by the installed library. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
protected | function | 1 | |
InstallablePluginBase:: |
public | function |
Retrieves the preferred library of the plugin. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the configuration for the plugin, but sorted. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Retrieves the URL of the plugin, if set. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
The current version of the plugin. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function | ||
InstallablePluginBase:: |
public | function |
Indicates whether plugin has multiple installs to check. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Indicates whether the plugin is installed. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Indicates whether the plugin is using the preferred library. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Indicates whether the preferred library is installed. Overrides InstallablePluginInterface:: |
|
InstallablePluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides AnnotatedPluginBase:: |
3 |
InstallablePluginBase:: |
public | function |
Indicates whether the plugin should be shown in the UI. Overrides InstallablePluginInterface:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
MoreInfoTrait:: |
protected | function | Appends existing content with a "More Info" link. | |
ParserAwareInterface:: |
public | function | Retrieves a Filter instance, if set. | |
ParserAwareInterface:: |
public | function | Sets the Filter plugin. | 1 |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. Aliased as: getPluginDependenciesTrait | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. | |
RendererTrait:: |
protected static | property | The Renderer service. | |
RendererTrait:: |
protected | function | Retrieves the Renderer service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |