public function BaseMarkdownPluginManager::processDefinition in Markdown 3.0.x
Performs extra processing on plugin definitions.
By default we add defaults for the type to the definition. If a type has additional processing logic they can do that by replacing or extending the method.
Overrides DefaultPluginManager::processDefinition
1 call to BaseMarkdownPluginManager::processDefinition()
- MarkdownExtensionManager::processDefinition in src/
MarkdownExtensionManager.php - Performs extra processing on plugin definitions.
1 method overrides BaseMarkdownPluginManager::processDefinition()
- MarkdownExtensionManager::processDefinition in src/
MarkdownExtensionManager.php - Performs extra processing on plugin definitions.
File
- src/
BaseMarkdownPluginManager.php, line 78
Class
Namespace
Drupal\markdownCode
public function processDefinition(&$definition, $plugin_id) {
// Immediately return if plugin is not installable.
if (!is_array($definition) || !($class = $definition['class'] ?? NULL) || !is_subclass_of($class, MarkdownInstallablePluginInterface::class)) {
return;
}
// Determine if plugin is installed, if not explicitly specified.
if (!isset($definition['installed'])) {
$definition['installed'] = $class::installed();
}
elseif (is_string($definition['installed'])) {
$definition['installed'] = class_exists($definition['installed']);
}
elseif (!is_bool($definition['installed'])) {
throw new DiscoveryException('The "installed" property must either be a class name that is checked for existence or a boolean. If complex requirements are needed, use \\Drupal\\markdown\\Plugin\\Markdown\\MarkdownInstallablePluginInterface::installed() instead of setting the value in the plugin annotation.');
}
// Determine if plugin version, if not explicitly specified.
if (!isset($definition['version'])) {
$definition['version'] = $class::version();
}
elseif (is_string($definition['version'])) {
if (defined($definition['version'])) {
$definition['version'] = constant($definition['version']);
}
elseif (strpos($definition['version'], '::')) {
[
$class,
$const,
] = explode('::', $definition['version']);
$definition['version'] = $class::$const;
}
elseif (is_callable($definition['version'])) {
$definition['version'] = $definition['version']();
}
else {
throw new DiscoveryException('The "version" property must either be a constant or public class constant or property that exists in code somewhere. If complex requirements are needed, use \\Drupal\\markdown\\Plugin\\Markdown\\MarkdownInstallablePluginInterface::version() instead of setting the value in the plugin annotation.');
}
}
}