ExecutablePluginTrait.php

Namespace

Drupal\rules\Core

File

src/Core/ExecutablePluginTrait.php

View source
<?php

namespace Drupal\rules\Core;

use Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException;

/**
 * Offers common methods for executable plugins.
 */
trait ExecutablePluginTrait {
  
  /**
   * Get the translated label from the plugin definition.
   *
   * @return string
   *   The label of the plugin.
   *
   * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
   *   Thrown if the label is not defined for the plugin.
   */
  protected function getLabelValue() {
    $definition = $this->getPluginDefinition();
    if (empty($definition['label'])) {
      throw new InvalidPluginDefinitionException('The label is not defined for plugin ' . $this->getPluginId() . ' (' . __CLASS__ . ').');
    }
    // The label can be an instance of
    // \Drupal\Core\StringTranslation\TranslatableMarkup here, so make sure to
    // always return a primitive string representation here.
    return (string) $definition['label'];
  }
  
  /**
   * Get the translated summary from the label annotation.
   *
   * @return string
   *   The summary of the plugin.
   *
   * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
   *   Thrown if a summary was not set.
   */
  public function summary() {
    return $this->getLabelValue();
  }

}

Traits

Title Deprecated Summary
ExecutablePluginTrait Offers common methods for executable plugins.