function EntityTestBundleClassHooks::entityBundleInfoAlter

Implements hook_entity_bundle_info_alter().

Attributes

#[Hook('entity_bundle_info_alter')]

File

core/modules/system/tests/modules/entity_test_bundle_class/src/Hook/EntityTestBundleClassHooks.php, line 25

Class

EntityTestBundleClassHooks
Hook implementations for entity_test_bundle_class.

Namespace

Drupal\entity_test_bundle_class\Hook

Code

public function entityBundleInfoAlter(&$bundles) : void {
  if (!empty($bundles['entity_test']['bundle_class'])) {
    $bundles['entity_test']['bundle_class']['class'] = EntityTestBundleClass::class;
  }
  if (\Drupal::state()->get('entity_test_bundle_class_enable_ambiguous_entity_types', FALSE)) {
    $bundles['entity_test']['bundle_class_2']['class'] = EntityTestBundleClass::class;
    $bundles['entity_test']['entity_test_no_label']['class'] = EntityTestAmbiguousBundleClass::class;
    $bundles['entity_test_no_label']['entity_test_no_label']['class'] = EntityTestAmbiguousBundleClass::class;
  }
  if (\Drupal::state()->get('entity_test_bundle_class_non_inheriting', FALSE)) {
    $bundles['entity_test']['bundle_class']['class'] = NonInheritingBundleClass::class;
  }
  if (\Drupal::state()->get('entity_test_bundle_class_enable_user_class', FALSE)) {
    $bundles['user']['user']['class'] = EntityTestUserClass::class;
  }
  if (\Drupal::state()->get('entity_test_bundle_class_does_not_exist', FALSE)) {
    $bundles['entity_test']['bundle_class']['class'] = '\\Drupal\\Core\\NonExistentClass';
  }
  // Have two bundles share the same base entity class.
  $bundles['shared_type']['bundle_a'] = [
    'label' => 'Bundle A',
    'class' => SharedEntityTestBundleClassA::class,
  ];
  $bundles['shared_type']['bundle_b'] = [
    'label' => 'Bundle B',
    'class' => SharedEntityTestBundleClassB::class,
  ];
}

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