class SectionStorageDefinition in Drupal 10
Same name and namespace in other branches
- 8 core/modules/layout_builder/src/SectionStorage/SectionStorageDefinition.php \Drupal\layout_builder\SectionStorage\SectionStorageDefinition
- 9 core/modules/layout_builder/src/SectionStorage/SectionStorageDefinition.php \Drupal\layout_builder\SectionStorage\SectionStorageDefinition
Provides section storage type plugin definition.
Hierarchy
- class \Drupal\Component\Plugin\Definition\PluginDefinition implements PluginDefinitionInterface
- class \Drupal\layout_builder\SectionStorage\SectionStorageDefinition implements ContextAwarePluginDefinitionInterface uses ContextAwarePluginDefinitionTrait
Expanded class hierarchy of SectionStorageDefinition
8 files declare their use of SectionStorageDefinition
- DefaultsSectionStorageTest.php in core/
modules/ layout_builder/ tests/ src/ Unit/ DefaultsSectionStorageTest.php - DefaultsSectionStorageTest.php in core/
modules/ layout_builder/ tests/ src/ Kernel/ DefaultsSectionStorageTest.php - LayoutBuilderRoutesTest.php in core/
modules/ layout_builder/ tests/ src/ Unit/ LayoutBuilderRoutesTest.php - LayoutBuilderRoutesTrait.php in core/
modules/ layout_builder/ src/ Routing/ LayoutBuilderRoutesTrait.php - OverridesSectionStorageTest.php in core/
modules/ layout_builder/ tests/ src/ Unit/ OverridesSectionStorageTest.php
File
- core/
modules/ layout_builder/ src/ SectionStorage/ SectionStorageDefinition.php, line 12
Namespace
Drupal\layout_builder\SectionStorageView source
class SectionStorageDefinition extends PluginDefinition implements ContextAwarePluginDefinitionInterface {
use ContextAwarePluginDefinitionTrait;
/**
* The plugin weight.
*
* @var int
*/
protected $weight = 0;
/**
* Any additional properties and values.
*
* @var array
*/
protected $additional = [];
/**
* LayoutDefinition constructor.
*
* @param array $definition
* An array of values from the annotation.
*/
public function __construct(array $definition = []) {
// If there are context definitions in the plugin definition, they should
// be added to this object using ::addContextDefinition() so that they can
// be manipulated using other ContextAwarePluginDefinitionInterface methods.
if (isset($definition['context_definitions'])) {
foreach ($definition['context_definitions'] as $name => $context_definition) {
$this
->addContextDefinition($name, $context_definition);
}
unset($definition['context_definitions']);
}
foreach ($definition as $property => $value) {
$this
->set($property, $value);
}
}
/**
* Gets any arbitrary property.
*
* @param string $property
* The property to retrieve.
*
* @return mixed
* The value for that property, or NULL if the property does not exist.
*/
public function get($property) {
if (property_exists($this, $property)) {
$value = $this->{$property} ?? NULL;
}
else {
$value = $this->additional[$property] ?? NULL;
}
return $value;
}
/**
* Sets a value to an arbitrary property.
*
* @param string $property
* The property to use for the value.
* @param mixed $value
* The value to set.
*
* @return $this
*/
public function set($property, $value) {
if (property_exists($this, $property)) {
$this->{$property} = $value;
}
else {
$this->additional[$property] = $value;
}
return $this;
}
/**
* Returns the plugin weight.
*
* @return int
* The plugin weight.
*/
public function getWeight() {
return $this->weight;
}
}