class YamlDiscovery implements DiscoveryInterface (View source)

Allows YAML files to define plugin definitions.

If the value of a key (like title) in the definition is translatable then the addTranslatableProperty() method can be used to mark it as such and also to add translation context. Then \Drupal\Core\StringTranslation\TranslatableMarkup will be used to translate the string and also to mark it safe. Only strings written in the YAML files should be marked as safe, strings coming from dynamic plugin definitions potentially containing user input should not.

Traits

Properties

protected YamlDiscovery $discovery

YAML file discovery and parsing handler.

protected array $translatableProperties

Contains an array of translatable properties passed along to t().

Methods

array
getDefinitions()

Gets the definition of all plugins for this type.

getDefinition($plugin_id, $exception_on_invalid = TRUE)

{@inheritdoc}

array|null
doGetDefinition(array $definitions, string $plugin_id, bool $exception_on_invalid)

Gets a specific plugin definition.

hasDefinition($plugin_id)

{@inheritdoc}

__construct(string $name, array $directories)

Construct a YamlDiscovery object.

$this
addTranslatableProperty(string $value_key, string $context_key = '')

Set one of the YAML values as being translatable.

Details

array getDefinitions()

Gets the definition of all plugins for this type.

Return Value

array

An array of plugin definitions (empty array if no definitions were found). Keys are plugin IDs.

getDefinition($plugin_id, $exception_on_invalid = TRUE)

{@inheritdoc}

Parameters

$plugin_id
$exception_on_invalid

protected array|null doGetDefinition(array $definitions, string $plugin_id, bool $exception_on_invalid)

Gets a specific plugin definition.

Parameters

array $definitions

An array of the available plugin definitions.

string $plugin_id

A plugin id.

bool $exception_on_invalid

If TRUE, an invalid plugin ID will cause an exception to be thrown; if FALSE, NULL will be returned.

Return Value

array|null

A plugin definition, or NULL if the plugin ID is invalid and $exception_on_invalid is TRUE.

Exceptions

PluginNotFoundException

hasDefinition($plugin_id)

{@inheritdoc}

Parameters

$plugin_id

__construct(string $name, array $directories)

Construct a YamlDiscovery object.

Parameters

string $name

The file name suffix to use for discovery; for example, 'test' will become 'MODULE.test.yml'.

array $directories

An array of directories to scan.

$this addTranslatableProperty(string $value_key, string $context_key = '')

Set one of the YAML values as being translatable.

Parameters

string $value_key

The key corresponding to the value in the YAML that contains a translatable string.

string $context_key

(Optional) the translation context for the value specified by the $value_key.

Return Value

$this