protected function InstallablePluginManager::getRuntimeDefinitions in Markdown 8.2
Retrieves the runtime definitions.
@noinspection PhpDocMissingThrowsInspection
Return value
\Drupal\markdown\Annotation\InstallablePlugin[] The runtime definitions.
1 call to InstallablePluginManager::getRuntimeDefinitions()
- InstallablePluginManager::getDefinitions in src/
PluginManager/ InstallablePluginManager.php - Gets the definition of all plugins for this type.
File
- src/
PluginManager/ InstallablePluginManager.php, line 373
Class
- InstallablePluginManager
- Installable Plugin Manager.
Namespace
Drupal\markdown\PluginManagerCode
protected function getRuntimeDefinitions() {
// Ensure the class has an array key set, defaulted to NULL.
if (!array_key_exists(static::class, static::$runtimeDefinitions)) {
static::$runtimeDefinitions[static::class] = NULL;
}
// Retrieve cached runtime definitions.
static::$runtimeDefinitions[static::class] = $this
->getCachedDefinitions(TRUE);
// Build the runtime definitions.
if (!isset(static::$runtimeDefinitions[static::class])) {
// Retrieve normal definitions.
static::$runtimeDefinitions[static::class] = parent::getDefinitions();
// Validate runtime definition requirements.
/* @var \Drupal\markdown\Annotation\InstallablePlugin $definition */
foreach (static::$runtimeDefinitions[static::class] as $definition) {
$definition
->validate(TRUE);
}
// Alter runtime definitions.
$this
->alterDefinitions(static::$runtimeDefinitions[static::class], TRUE);
// Normalize any callbacks provided.
try {
static::normalizeCallables(static::$runtimeDefinitions[static::class]);
} catch (MarkdownUnexpectedValueException $exception) {
$plugin_id = array_reverse($exception
->getParents())[0];
$annotation = array_reverse(explode('\\', $this->pluginDefinitionAnnotationName))[0];
throw new InvalidPluginDefinitionException($plugin_id, sprintf('Invalid callback defined in @%s. %s.', $annotation, $exception
->getMessage()), 0, isset($e) ? $e : NULL);
}
// Re-validate runtime definition requirements after alterations.
/* @var \Drupal\markdown\Annotation\InstallablePlugin $definition */
foreach (static::$runtimeDefinitions[static::class] as $plugin_id => $definition) {
$definition
->validate(TRUE);
}
// Sort the runtime definitions.
$this
->sortDefinitions(static::$runtimeDefinitions[static::class]);
// Cache the runtime definitions.
$this
->setCachedDefinitions(static::$runtimeDefinitions[static::class], TRUE);
}
// Runtime definitions should always be the active definitions.
$this->definitions = static::$runtimeDefinitions[static::class];
return $this->definitions;
}