class Context
Same name in this branch
- 8.9.x core/lib/Drupal/Core/Plugin/Context/Context.php \Drupal\Core\Plugin\Context\Context
Same name in other branches
- 9 core/lib/Drupal/Core/Plugin/Context/Context.php \Drupal\Core\Plugin\Context\Context
- 9 core/lib/Drupal/Component/Plugin/Context/Context.php \Drupal\Component\Plugin\Context\Context
- 10 core/lib/Drupal/Core/Plugin/Context/Context.php \Drupal\Core\Plugin\Context\Context
- 10 core/lib/Drupal/Component/Plugin/Context/Context.php \Drupal\Component\Plugin\Context\Context
- 11.x core/lib/Drupal/Core/Plugin/Context/Context.php \Drupal\Core\Plugin\Context\Context
- 11.x core/lib/Drupal/Component/Plugin/Context/Context.php \Drupal\Component\Plugin\Context\Context
A generic context class for wrapping data a plugin needs to operate.
Hierarchy
- class \Drupal\Component\Plugin\Context\Context implements \Drupal\Component\Plugin\Context\ContextInterface
Expanded class hierarchy of Context
3 files declare their use of Context
- Context.php in core/
lib/ Drupal/ Core/ Plugin/ Context/ Context.php - ContextAwarePluginBase.php in core/
lib/ Drupal/ Component/ Plugin/ ContextAwarePluginBase.php - ContextTest.php in core/
tests/ Drupal/ Tests/ Component/ Plugin/ Context/ ContextTest.php
19 string references to 'Context'
- AccessResultTest::testCacheUntilConfigurationChanges in core/
tests/ Drupal/ Tests/ Core/ Access/ AccessResultTest.php - @expectedDeprecation Drupal\Core\Access\AccessResult::cacheUntilConfigurationChanges is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead. @group legacy
- AccessResultTest::testCacheUntilEntityChanges in core/
tests/ Drupal/ Tests/ Core/ Access/ AccessResultTest.php - @expectedDeprecation Drupal\Core\Access\AccessResult::cacheUntilEntityChanges is deprecated in drupal:8.0.0 and is removed in drupal:9.0.0. Use \Drupal\Core\Access\AccessResult::addCacheableDependency() instead. @group legacy
- ContextualLinkDefaultTest::testGetTitleWithContext in core/
tests/ Drupal/ Tests/ Core/ Menu/ ContextualLinkDefaultTest.php - @covers ::getTitle
- drupal7.php in core/
modules/ migrate_drupal/ tests/ fixtures/ drupal7.php - A database agnostic dump for testing purposes.
- EntityManagerTest::testGetTranslationFromContext in core/
tests/ Drupal/ Tests/ Core/ Entity/ EntityManagerTest.php - Tests the getTranslationFromContext() method.
File
-
core/
lib/ Drupal/ Component/ Plugin/ Context/ Context.php, line 12
Namespace
Drupal\Component\Plugin\ContextView source
class Context implements ContextInterface {
/**
* The value of the context.
*
* @var mixed
*/
protected $contextValue;
/**
* The definition to which a context must conform.
*
* @var \Drupal\Component\Plugin\Context\ContextDefinitionInterface
*/
protected $contextDefinition;
/**
* Create a context object.
*
* @param \Drupal\Component\Plugin\Context\ContextDefinitionInterface $context_definition
* The context definition.
* @param mixed|null $context_value
* The value of the context.
*/
public function __construct(ContextDefinitionInterface $context_definition, $context_value = NULL) {
$this->contextDefinition = $context_definition;
$this->contextValue = $context_value;
}
/**
* {@inheritdoc}
*/
public function getContextValue() {
// Support optional contexts.
if (!isset($this->contextValue)) {
$definition = $this->getContextDefinition();
$default_value = $definition->getDefaultValue();
if (!isset($default_value) && $definition->isRequired()) {
$type = $definition->getDataType();
throw new ContextException(sprintf("The %s context is required and not present.", $type));
}
// Keep the default value here so that subsequent calls don't have to look
// it up again.
$this->contextValue = $default_value;
}
return $this->contextValue;
}
/**
* {@inheritdoc}
*/
public function hasContextValue() {
return (bool) $this->contextValue || (bool) $this->getContextDefinition()
->getDefaultValue();
}
/**
* {@inheritdoc}
*/
public function getContextDefinition() {
return $this->contextDefinition;
}
/**
* {@inheritdoc}
*/
public function getConstraints() {
if (empty($this->contextDefinition['class'])) {
throw new ContextException("An error was encountered while trying to validate the context.");
}
return [
new Type($this->contextDefinition['class']),
];
}
/**
* {@inheritdoc}
*/
public function validate() {
$validator = Validation::createValidatorBuilder()->getValidator();
return $validator->validateValue($this->getContextValue(), $this->getConstraints());
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
Context::$contextDefinition | protected | property | The definition to which a context must conform. | 1 | |
Context::$contextValue | protected | property | The value of the context. | ||
Context::getConstraints | public | function | Gets a list of validation constraints. | Overrides ContextInterface::getConstraints | 1 |
Context::getContextDefinition | public | function | Gets the provided definition that the context must conform to. | Overrides ContextInterface::getContextDefinition | 1 |
Context::getContextValue | public | function | Gets the context value. | Overrides ContextInterface::getContextValue | 1 |
Context::hasContextValue | public | function | Returns whether the context has a value. | Overrides ContextInterface::hasContextValue | 1 |
Context::validate | public | function | Validates the set context value. | Overrides ContextInterface::validate | 1 |
Context::__construct | public | function | Create a context object. | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.