function hook_entity_type_alter

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_type_alter()
  2. 10 core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_type_alter()
  3. 11.x core/lib/Drupal/Core/Entity/entity.api.php \hook_entity_type_alter()

Alter the entity type definitions.

Modules may implement this hook to alter the information that defines an entity type. All properties that are available in \Drupal\Core\Entity\Annotation\EntityType and all the ones additionally provided by modules can be altered here.

Do not use this hook to add information to entity types, unless one of the following is true:

  • You are filling in default values.
  • You need to dynamically add information only in certain circumstances.
  • Your hook needs to run after hook_entity_type_build() implementations.

Use hook_entity_type_build() instead in all other cases.

Parameters

\Drupal\Core\Entity\EntityTypeInterface[] $entity_types: An associative array of all entity type definitions, keyed by the entity type name. Passed by reference.

See also

\Drupal\Core\Entity\Entity

\Drupal\Core\Entity\EntityTypeInterface

Related topics

55 functions implement hook_entity_type_alter()

Note: the procedural functions in this list are found by pattern matching, so the list may include some functions that are not actually implementations of this hook.

BlockContentHooks::entityTypeAlter in core/modules/block_content/src/Hook/BlockContentHooks.php
Implements hook_entity_type_alter().
block_content_entity_type_alter in core/modules/block_content/block_content.module
Implements hook_entity_type_alter().
CommentTestHooks::entityTypeAlter in core/modules/comment/tests/modules/comment_test/src/Hook/CommentTestHooks.php
Implements hook_entity_type_alter().
comment_test_entity_type_alter in core/modules/comment/tests/modules/comment_test/comment_test.module
Implements hook_entity_type_alter().
ConfigEntityStaticCacheTestHooks::entityTypeAlter in core/modules/config/tests/config_entity_static_cache_test/src/Hook/ConfigEntityStaticCacheTestHooks.php
Implements hook_entity_type_alter().

... See full list

1 invocation of hook_entity_type_alter()
KernelTestBaseTest::testSetUp in core/modules/simpletest/src/Tests/KernelTestBaseTest.php
Tests expected behavior of setUp().

File

core/lib/Drupal/Core/Entity/entity.api.php, line 816

Code

function hook_entity_type_alter(array &$entity_types) {
    
    /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
    // Set the controller class for nodes to an alternate implementation of the
    // Drupal\Core\Entity\EntityStorageInterface interface.
    $entity_types['node']->setStorageClass('Drupal\\mymodule\\MyCustomNodeStorage');
}

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