class MultipleStaticContext
Same name in other branches
- 9 core/modules/block/tests/modules/block_test/src/ContextProvider/MultipleStaticContext.php \Drupal\block_test\ContextProvider\MultipleStaticContext
- 8.9.x core/modules/block/tests/modules/block_test/src/ContextProvider/MultipleStaticContext.php \Drupal\block_test\ContextProvider\MultipleStaticContext
- 11.x core/modules/block/tests/modules/block_test/src/ContextProvider/MultipleStaticContext.php \Drupal\block_test\ContextProvider\MultipleStaticContext
Sets multiple contexts for a static value.
Hierarchy
- class \Drupal\block_test\ContextProvider\MultipleStaticContext implements \Drupal\Core\Plugin\Context\ContextProviderInterface
Expanded class hierarchy of MultipleStaticContext
1 string reference to 'MultipleStaticContext'
- block_test.services.yml in core/
modules/ block/ tests/ modules/ block_test/ block_test.services.yml - core/modules/block/tests/modules/block_test/block_test.services.yml
1 service uses MultipleStaticContext
- block_test.multiple_static_context in core/
modules/ block/ tests/ modules/ block_test/ block_test.services.yml - Drupal\block_test\ContextProvider\MultipleStaticContext
File
-
core/
modules/ block/ tests/ modules/ block_test/ src/ ContextProvider/ MultipleStaticContext.php, line 14
Namespace
Drupal\block_test\ContextProviderView source
class MultipleStaticContext implements ContextProviderInterface {
/**
* The current user.
*
* @var \Drupal\Core\Session\AccountInterface
*/
protected $account;
/**
* The user storage.
*
* @var \Drupal\user\UserStorageInterface
*/
protected $userStorage;
/**
* Constructs a new MultipleStaticContext.
*
* @param \Drupal\Core\Session\AccountInterface $account
* The current user.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* The entity type manager.
*/
public function __construct(AccountInterface $account, EntityTypeManagerInterface $entity_type_manager) {
$this->account = $account;
$this->userStorage = $entity_type_manager->getStorage('user');
}
/**
* {@inheritdoc}
*/
public function getRuntimeContexts(array $unqualified_context_ids) {
$current_user = $this->userStorage
->load($this->account
->id());
$context1 = EntityContext::fromEntity($current_user, 'User A');
$context2 = EntityContext::fromEntity($current_user, 'User B');
$cacheability = new CacheableMetadata();
$cacheability->setCacheContexts([
'user',
]);
$context1->addCacheableDependency($cacheability);
$context2->addCacheableDependency($cacheability);
return [
'userA' => $context1,
'userB' => $context2,
];
}
/**
* {@inheritdoc}
*/
public function getAvailableContexts() {
return $this->getRuntimeContexts([]);
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title |
---|---|---|---|---|
MultipleStaticContext::$account | protected | property | The current user. | |
MultipleStaticContext::$userStorage | protected | property | The user storage. | |
MultipleStaticContext::getAvailableContexts | public | function | Overrides ContextProviderInterface::getAvailableContexts | |
MultipleStaticContext::getRuntimeContexts | public | function | Overrides ContextProviderInterface::getRuntimeContexts | |
MultipleStaticContext::__construct | public | function | Constructs a new MultipleStaticContext. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.