class ViewsEntityTestHooks

Hook implementations for views_entity_test.

Hierarchy

Expanded class hierarchy of ViewsEntityTestHooks

File

core/modules/views/tests/modules/views_entity_test/src/Hook/ViewsEntityTestHooks.php, line 19

Namespace

Drupal\views_entity_test\Hook
View source
class ViewsEntityTestHooks {
  
  /**
   * Implements hook_entity_base_field_info().
   */
  public function entityBaseFieldInfo(EntityTypeInterface $entity_type) : array {
    if ($entity_type->id() == 'entity_test') {
      $definitions['test_text_access'] = BaseFieldDefinition::create('string')->setLabel('Test access')
        ->setTranslatable(FALSE)
        ->setSetting('max_length', 64)
        ->setDisplayOptions('form', [
        'type' => 'string_textfield',
        'weight' => 10,
      ]);
      return $definitions;
    }
    return [];
  }
  
  /**
   * Implements hook_entity_field_access().
   *
   * @see \Drupal\system\Tests\Entity\FieldAccessTest::testFieldAccess()
   */
  public function entityFieldAccess($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, ?FieldItemListInterface $items = NULL) : AccessResultInterface {
    if ($field_definition->getName() == 'test_text_access') {
      if ($items) {
        if ($items->value == 'no access value') {
          return AccessResult::forbidden()->addCacheableDependency($items->getEntity());
        }
      }
    }
    // No opinion.
    return AccessResult::neutral();
  }
  
  /**
   * Implements hook_entity_load().
   *
   * @see \Drupal\Tests\views\Kernel\Handler\FieldFieldTest::testSimpleExecute()
   */
  public function entityLoad(array $entities, $entity_type_id) : void {
    if ($entity_type_id === 'entity_test') {
      // Cast the value of an entity field to be something else than a string so
      // we can check that
      // \Drupal\views\Tests\ViewResultAssertionTrait::assertIdenticalResultsetHelper()
      // takes care of converting all field values to strings.
      foreach ($entities as $entity) {
        $entity->user_id->target_id = (int) $entity->user_id->target_id;
      }
    }
  }

}

Members

Title Sort descending Modifiers Object type Summary
ViewsEntityTestHooks::entityBaseFieldInfo public function Implements hook_entity_base_field_info().
ViewsEntityTestHooks::entityFieldAccess public function Implements hook_entity_field_access().
ViewsEntityTestHooks::entityLoad public function Implements hook_entity_load().

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