function IconExtractorBase::createIcon

Create the icon definition from an extractor plugin.

Parameters

string $icon_id: The id of the icon.

string|null $source: The source, url or path of the icon.

string|null $group: The group of the icon.

array|null $data: The icon data.

Return value

\Drupal\Core\Theme\Icon\IconDefinitionInterface The icon definition.

Overrides IconExtractorInterface::createIcon

3 calls to IconExtractorBase::createIcon()
IconExtractorBase::loadIcon in core/lib/Drupal/Core/Theme/Icon/IconExtractorBase.php
Load an icon object.
SvgExtractor::loadIcon in core/lib/Drupal/Core/Theme/Plugin/IconExtractor/SvgExtractor.php
Load an icon object.
TestExtractorWithFinder::discoverIcons in core/modules/system/tests/modules/icon_test/src/Plugin/IconExtractor/TestExtractorWithFinder.php
Get a list of all the icons discovered by this extractor.

File

core/lib/Drupal/Core/Theme/Icon/IconExtractorBase.php, line 87

Class

IconExtractorBase
Base class for icon extractor plugins.

Namespace

Drupal\Core\Theme\Icon

Code

public function createIcon(string $icon_id, ?string $source = NULL, ?string $group = NULL, ?array $data = NULL) : IconDefinitionInterface {
  if (!isset($this->configuration['template'])) {
    throw new IconPackConfigErrorException(sprintf('Missing `template` in your definition, extractor %s requires this value.', $this->getPluginId()));
  }
  // Clean unused pack definition values as they will be passed to the context
  // of the Twig.
  $data_definition = array_diff_key($this->configuration, array_flip(self::DEFINITION_REMOVE));
  return IconDefinition::create($this->configuration['id'], $icon_id, $this->configuration['template'], $source, $group, $data ? array_merge($data, $data_definition) : $data_definition);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.