function EntityTestBundleClassHooks::entityBundleInfoAlter

Implements 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) {
    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.