class Component

Same name in this branch
  1. 10 core/modules/sdc/src/Plugin/Component.php \Drupal\sdc\Plugin\Component
Same name and namespace in other branches
  1. 11.x core/modules/sdc/src/Plugin/Component.php \Drupal\sdc\Plugin\Component
  2. 11.x core/lib/Drupal/Core/Plugin/Component.php \Drupal\Core\Plugin\Component

Simple value object that contains information about the component.

Hierarchy

Expanded class hierarchy of Component

7 files declare their use of Component
ComponentNodeVisitor.php in core/lib/Drupal/Core/Template/ComponentNodeVisitor.php
ComponentPluginManager.php in core/lib/Drupal/Core/Theme/ComponentPluginManager.php
ComponentsTwigExtension.php in core/lib/Drupal/Core/Template/ComponentsTwigExtension.php
ComponentValidator.php in core/lib/Drupal/Core/Theme/Component/ComponentValidator.php
ComponentValidatorTest.php in core/tests/Drupal/Tests/Core/Theme/Component/ComponentValidatorTest.php

... See full list

8 string references to 'Component'
AnnotatedClassDiscoveryAutomatedProviders::prepareAnnotationDefinition in core/modules/migrate/src/Plugin/Discovery/AnnotatedClassDiscoveryAutomatedProviders.php
Prepares the annotation definition.
ComponentPluginManager::getDiscovery in core/lib/Drupal/Core/Theme/ComponentPluginManager.php
Gets the plugin discovery.
ConfigMapperManager::findDefinitions in core/modules/config_translation/src/ConfigMapperManager.php
Finds plugin definitions.
core.entity.schema.yml in core/config/schema/core.entity.schema.yml
core/config/schema/core.entity.schema.yml
DefaultPluginManager::findDefinitions in core/lib/Drupal/Core/Plugin/DefaultPluginManager.php
Finds plugin definitions.

... See full list

File

core/lib/Drupal/Core/Plugin/Component.php, line 11

Namespace

Drupal\Core\Plugin
View source
class Component extends PluginBase {
  
  /**
   * The component's metadata.
   *
   * @var \Drupal\Core\Theme\Component\ComponentMetadata
   */
  public readonly ComponentMetadata $metadata;
  
  /**
   * The component machine name.
   *
   * @var string
   */
  public readonly string $machineName;
  
  /**
   * The Twig template for the component.
   *
   * @var string
   */
  public readonly string $template;
  
  /**
   * The library definition to be attached with the component.
   *
   * @var array
   */
  public readonly array $library;
  
  /**
   * Component constructor.
   *
   * @throws \Drupal\Core\Render\Component\Exception\InvalidComponentException
   */
  public function __construct(array $configuration, $plugin_id, $plugin_definition) {
    parent::__construct($configuration, $plugin_id, $plugin_definition);
    if (str_contains($plugin_id, '/')) {
      $message = sprintf('Component ID cannot contain slashes: %s', $plugin_id);
      throw new InvalidComponentException($message);
    }
    $template = $plugin_definition['template'] ?? NULL;
    if (!$template) {
      $message = sprintf('Unable to find the Twig template for the component "%s".', $plugin_id);
      throw new InvalidComponentException($message);
    }
    $this->template = $template;
    $this->machineName = $plugin_definition['machineName'];
    $this->library = $plugin_definition['library'] ?? [];
    $this->metadata = new ComponentMetadata($plugin_definition, $configuration['app_root'], (bool) ($configuration['enforce_schemas'] ?? FALSE));
  }
  
  /**
   * The template path.
   *
   * @return string|null
   *   The path to the template.
   */
  public function getTemplatePath() : ?string {
    return $this->metadata->path . DIRECTORY_SEPARATOR . $this->template;
  }
  
  /**
   * The auto-computed library name.
   *
   * @return string
   *   The library name.
   */
  public function getLibraryName() : string {
    $library_id = $this->getPluginId();
    $library_id = str_replace(':', '--', $library_id);
    return sprintf('core/components.%s', $library_id);
  }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title Overrides
Component::$library public property The library definition to be attached with the component.
Component::$machineName public property The component machine name.
Component::$metadata public property The component's metadata.
Component::$template public property The Twig template for the component.
Component::getLibraryName public function The auto-computed library name.
Component::getTemplatePath public function The template path.
Component::__construct public function Component constructor. Overrides PluginBase::__construct
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function #[\ReturnTypeWillChange] 2
MessengerTrait::$messenger protected property The messenger. 25
MessengerTrait::messenger public function Gets the messenger. 25
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin ID.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 2
PluginBase::getPluginId public function Gets the plugin ID of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 3
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.

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