function ContextDefinition::getDefinitionClass

Same name in other branches
  1. 9 core/lib/Drupal/Core/Annotation/ContextDefinition.php \Drupal\Core\Annotation\ContextDefinition::getDefinitionClass()
  2. 8.9.x core/lib/Drupal/Core/Annotation/ContextDefinition.php \Drupal\Core\Annotation\ContextDefinition::getDefinitionClass()
  3. 11.x core/lib/Drupal/Core/Annotation/ContextDefinition.php \Drupal\Core\Annotation\ContextDefinition::getDefinitionClass()

Determines the context definition class to use.

If the annotation specifies a specific context definition class, we use that. Otherwise, we use \Drupal\Core\Plugin\Context\EntityContextDefinition if the data type starts with 'entity:', since it contains specialized logic specific to entities. Otherwise, we fall back to the generic \Drupal\Core\Plugin\Context\ContextDefinition class.

Parameters

array $values: The annotation values.

Return value

string The fully-qualified name of the context definition class.

1 call to ContextDefinition::getDefinitionClass()
ContextDefinition::__construct in core/lib/Drupal/Core/Annotation/ContextDefinition.php
Constructs a new context definition object.

File

core/lib/Drupal/Core/Annotation/ContextDefinition.php, line 144

Class

ContextDefinition
Defines a context definition annotation object.

Namespace

Drupal\Core\Annotation

Code

protected function getDefinitionClass(array $values) {
    if (isset($values['class'])) {
        return $values['class'];
    }
    if (str_starts_with($values['value'], 'entity:')) {
        return 'Drupal\\Core\\Plugin\\Context\\EntityContextDefinition';
    }
    return 'Drupal\\Core\\Plugin\\Context\\ContextDefinition';
}

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