function IconDefinition::create

Create an icon definition.

Parameters

string $pack_id: The id of the icon pack.

string $icon_id: The id of the icon.

string $template: The icon template from definition.

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

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

array $data: The additional data of the icon. Used by extractors to dynamically add any needed value.

Return value

self The icon definition.

Overrides IconDefinitionInterface::create

6 calls to IconDefinition::create()
ExtractorTest::testCreateIcon in core/tests/Drupal/Tests/Core/Theme/Icon/Plugin/ExtractorTest.php
Test the IconExtractorBase:createIcon method.
IconDefinitionTest::testCreateIcon in core/tests/Drupal/Tests/Core/Theme/Icon/IconDefinitionTest.php
Test the IconDefinition::createIcon method.
IconDefinitionTest::testCreateIconError in core/tests/Drupal/Tests/Core/Theme/Icon/IconDefinitionTest.php
Test the IconDefinition::create method with errors.
IconDefinitionTest::testCreateIconHumanize in core/tests/Drupal/Tests/Core/Theme/Icon/IconDefinitionTest.php
Test the IconDefinition::humanize method.
IconExtractorBase::createIcon in core/lib/Drupal/Core/Theme/Icon/IconExtractorBase.php
Create the icon definition from an extractor plugin.

... See full list

File

core/lib/Drupal/Core/Theme/Icon/IconDefinition.php, line 49

Class

IconDefinition
Handle an icon definition.

Namespace

Drupal\Core\Theme\Icon

Code

public static function create(string $pack_id, string $icon_id, string $template, ?string $source = NULL, ?string $group = NULL, array $data = []) : self {
  $errors = [];
  if (0 === strlen($pack_id)) {
    $errors[] = 'Empty pack_id provided!';
  }
  if (0 === strlen($icon_id)) {
    $errors[] = 'Empty icon_id provided!';
  }
  if (0 === strlen($template)) {
    $errors[] = 'Empty template provided!';
  }
  if (count($errors)) {
    throw new IconDefinitionInvalidDataException(implode(' ', $errors));
  }
  // Cleanup of data that do not need to be passed.
  unset($data['config']['sources'], $data['relative_path'], $data['absolute_path']);
  return new self($pack_id, $icon_id, $template, $source, $group, $data);
}

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