class AttributeBase
Provides a base class for classed attributes.
Hierarchy
- class \Drupal\Component\Plugin\Attribute\AttributeBase implements \Drupal\Component\Plugin\Attribute\AttributeInterface
Expanded class hierarchy of AttributeBase
2 files declare their use of AttributeBase
- AttributeBaseTest.php in core/
tests/ Drupal/ Tests/ Component/ Plugin/ Attribute/ AttributeBaseTest.php - IconExtractor.php in core/
lib/ Drupal/ Core/ Theme/ Icon/ Attribute/ IconExtractor.php
File
-
core/
lib/ Drupal/ Component/ Plugin/ Attribute/ AttributeBase.php, line 8
Namespace
Drupal\Component\Plugin\AttributeView source
abstract class AttributeBase implements AttributeInterface {
/**
* The class used for this attribute class.
*
* @var class-string
*/
protected string $class;
/**
* The provider of the attribute class.
*/
protected string|null $provider = NULL;
/**
* The dependencies for the attribute class.
*
* Dependencies are keyed by type. If the type is 'class', 'interface', or
* 'trait', the values for the type are class names. If the type is
* 'provider', the values for the type are provider names.
*
* @var array{"class"?: list<class-string>, "interface"?: list<class-string>, "trait"?: list<class-string>, "provider"?: list<string>}|null
*/
protected array|null $dependencies = NULL;
/**
* @param string $id
* The attribute class ID.
*/
public function __construct(protected readonly string $id) {
}
/**
* {@inheritdoc}
*/
public function getProvider() : ?string {
return $this->provider;
}
/**
* {@inheritdoc}
*/
public function setProvider(string $provider) : void {
$this->provider = $provider;
}
/**
* {@inheritdoc}
*/
public function getId() : string {
return $this->id;
}
/**
* {@inheritdoc}
*/
public function getClass() : string {
return $this->class;
}
/**
* {@inheritdoc}
*/
public function setClass(string $class) : void {
$this->class = $class;
}
/**
* {@inheritdoc}
*/
public function getDependencies() : ?array {
return $this->dependencies;
}
/**
* {@inheritdoc}
*/
public function setDependencies(?array $dependencies) : void {
$this->dependencies = $dependencies;
}
/**
* {@inheritdoc}
*/
public function get() : array|object {
return array_filter(get_object_vars($this) + [
'class' => $this->getClass(),
'provider' => $this->getProvider(),
], function ($value, $key) {
return !($value === NULL && in_array($key, [
'deriver',
'provider',
'dependencies',
]));
}, ARRAY_FILTER_USE_BOTH);
}
}
Members
| Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
|---|---|---|---|---|---|
| AttributeBase::$class | protected | property | The class used for this attribute class. | ||
| AttributeBase::$dependencies | protected | property | The dependencies for the attribute class. | ||
| AttributeBase::$provider | protected | property | The provider of the attribute class. | ||
| AttributeBase::get | public | function | Gets the value of an attribute. | Overrides AttributeInterface::get | 7 |
| AttributeBase::getClass | public | function | Gets the class of the attribute class. | Overrides AttributeInterface::getClass | 1 |
| AttributeBase::getDependencies | public | function | Gets the dependencies for this attribute class. | Overrides AttributeInterface::getDependencies | |
| AttributeBase::getId | public | function | Gets the unique ID for this attribute class. | Overrides AttributeInterface::getId | |
| AttributeBase::getProvider | public | function | Gets the name of the provider of the attribute class. | Overrides AttributeInterface::getProvider | |
| AttributeBase::setClass | public | function | Sets the class of the attributed class. | Overrides AttributeInterface::setClass | 1 |
| AttributeBase::setDependencies | public | function | Sets the dependencies for this attribute class. | Overrides AttributeInterface::setDependencies | |
| AttributeBase::setProvider | public | function | Sets the name of the provider of the attribute class. | Overrides AttributeInterface::setProvider | |
| AttributeBase::__construct | public | function | 2 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.