abstract class ConfigEntityBundleBase in Drupal 8
Same name and namespace in other branches
- 9 core/lib/Drupal/Core/Config/Entity/ConfigEntityBundleBase.php \Drupal\Core\Config\Entity\ConfigEntityBundleBase
A base class for config entity types that act as bundles.
Entity types that want to use this base class must use bundle_of in their annotation to specify for which entity type they are providing bundles for.
Hierarchy
- class \Drupal\Core\Entity\EntityBase implements EntityInterface uses RefinableCacheableDependencyTrait, DependencySerializationTrait- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait- class \Drupal\Core\Config\Entity\ConfigEntityBundleBase
 
 
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
Expanded class hierarchy of ConfigEntityBundleBase
8 files declare their use of ConfigEntityBundleBase
- BlockContentType.php in core/modules/ block_content/ src/ Entity/ BlockContentType.php 
- CommentType.php in core/modules/ comment/ src/ Entity/ CommentType.php 
- ContactForm.php in core/modules/ contact/ src/ Entity/ ContactForm.php 
- EntityTestBundle.php in core/modules/ system/ tests/ modules/ entity_test/ src/ Entity/ EntityTestBundle.php 
- MediaType.php in core/modules/ media/ src/ Entity/ MediaType.php 
File
- core/lib/ Drupal/ Core/ Config/ Entity/ ConfigEntityBundleBase.php, line 14 
Namespace
Drupal\Core\Config\EntityView source
abstract class ConfigEntityBundleBase extends ConfigEntityBase {
  /**
   * Deletes display if a bundle is deleted.
   */
  protected function deleteDisplays() {
    // Remove entity displays of the deleted bundle.
    if ($displays = $this
      ->loadDisplays('entity_view_display')) {
      $storage = $this
        ->entityTypeManager()
        ->getStorage('entity_view_display');
      $storage
        ->delete($displays);
    }
    // Remove entity form displays of the deleted bundle.
    if ($displays = $this
      ->loadDisplays('entity_form_display')) {
      $storage = $this
        ->entityTypeManager()
        ->getStorage('entity_form_display');
      $storage
        ->delete($displays);
    }
  }
  /**
   * {@inheritdoc}
   */
  public function postSave(EntityStorageInterface $storage, $update = TRUE) {
    parent::postSave($storage, $update);
    $entity_type_manager = $this
      ->entityTypeManager();
    $bundle_of = $this
      ->getEntityType()
      ->getBundleOf();
    if (!$update) {
      \Drupal::service('entity_bundle.listener')
        ->onBundleCreate($this
        ->id(), $bundle_of);
    }
    else {
      // Invalidate the render cache of entities for which this entity
      // is a bundle.
      if ($entity_type_manager
        ->hasHandler($bundle_of, 'view_builder')) {
        $entity_type_manager
          ->getViewBuilder($bundle_of)
          ->resetCache();
      }
      // Entity bundle field definitions may depend on bundle settings.
      \Drupal::service('entity_field.manager')
        ->clearCachedFieldDefinitions();
      $this
        ->entityTypeBundleInfo()
        ->clearCachedBundles();
    }
  }
  /**
   * {@inheritdoc}
   */
  public static function postDelete(EntityStorageInterface $storage, array $entities) {
    parent::postDelete($storage, $entities);
    foreach ($entities as $entity) {
      $entity
        ->deleteDisplays();
      \Drupal::service('entity_bundle.listener')
        ->onBundleDelete($entity
        ->id(), $entity
        ->getEntityType()
        ->getBundleOf());
    }
  }
  /**
   * Acts on an entity before the presave hook is invoked.
   *
   * Used before the entity is saved and before invoking the presave hook.
   *
   * Ensure that config entities which are bundles of other entities cannot have
   * their ID changed.
   *
   * @param \Drupal\Core\Entity\EntityStorageInterface $storage
   *   The entity storage object.
   *
   * @throws \Drupal\Core\Config\ConfigNameException
   *   Thrown when attempting to rename a bundle entity.
   */
  public function preSave(EntityStorageInterface $storage) {
    parent::preSave($storage);
    // Only handle renames, not creations.
    if (!$this
      ->isNew() && $this
      ->getOriginalId() !== $this
      ->id()) {
      $bundle_type = $this
        ->getEntityType();
      $bundle_of = $bundle_type
        ->getBundleOf();
      if (!empty($bundle_of)) {
        throw new ConfigNameException("The machine name of the '{$bundle_type->getLabel()}' bundle cannot be changed.");
      }
    }
  }
  /**
   * Returns view or form displays for this bundle.
   *
   * @param string $entity_type_id
   *   The entity type ID of the display type to load.
   *
   * @return \Drupal\Core\Entity\Display\EntityDisplayInterface[]
   *   A list of matching displays.
   */
  protected function loadDisplays($entity_type_id) {
    $ids = \Drupal::entityQuery($entity_type_id)
      ->condition('id', $this
      ->getEntityType()
      ->getBundleOf() . '.' . $this
      ->getOriginalId() . '.', 'STARTS_WITH')
      ->execute();
    if ($ids) {
      $storage = $this
        ->entityTypeManager()
        ->getStorage($entity_type_id);
      return $storage
        ->loadMultiple($ids);
    }
    return [];
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| CacheableDependencyTrait:: | protected | property | Cache contexts. | |
| CacheableDependencyTrait:: | protected | property | Cache max-age. | |
| CacheableDependencyTrait:: | protected | property | Cache tags. | |
| CacheableDependencyTrait:: | protected | function | Sets cacheability; useful for value object constructors. | |
| ConfigEntityBase:: | private | property | Whether the config is being deleted by the uninstall process. | |
| ConfigEntityBase:: | protected | property | The language code of the entity's default language. | |
| ConfigEntityBase:: | protected | property | The original ID of the configuration entity. | |
| ConfigEntityBase:: | protected | property | The enabled/disabled status of the configuration entity. | 4 | 
| ConfigEntityBase:: | protected | property | Third party entity settings. | |
| ConfigEntityBase:: | protected | property | Trust supplied data and not use configuration schema on save. | |
| ConfigEntityBase:: | protected | property | The UUID for this entity. | |
| ConfigEntityBase:: | protected | property | Information maintained by Drupal core about configuration. | |
| ConfigEntityBase:: | protected | function | Overrides \Drupal\Core\Entity\DependencyTrait:addDependency(). | |
| ConfigEntityBase:: | public | function | Calculates dependencies and stores them in the dependency property. Overrides ConfigEntityInterface:: | 13 | 
| ConfigEntityBase:: | public | function | Creates a duplicate of the entity. Overrides EntityBase:: | 1 | 
| ConfigEntityBase:: | public | function | Disables the configuration entity. Overrides ConfigEntityInterface:: | 1 | 
| ConfigEntityBase:: | public | function | Enables the configuration entity. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Returns the value of a property. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Returns the cache tags that should be used to invalidate caches. Overrides EntityBase:: | 1 | 
| ConfigEntityBase:: | public | function | Gets the configuration dependency name. Overrides EntityBase:: | |
| ConfigEntityBase:: | protected static | function | Gets the configuration manager. | |
| ConfigEntityBase:: | public | function | Gets the configuration target identifier for the entity. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Gets the configuration dependencies. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Gets the original ID. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Gets the list of third parties that store information. Overrides ThirdPartySettingsInterface:: | |
| ConfigEntityBase:: | public | function | Gets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: | |
| ConfigEntityBase:: | public | function | Gets all third-party settings of a given module. Overrides ThirdPartySettingsInterface:: | |
| ConfigEntityBase:: | protected | function | Gets the typed config manager. | |
| ConfigEntityBase:: | public | function | Gets whether on not the data is trusted. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | protected static | function | Override to never invalidate the individual entities' cache tags; the
config system already invalidates them. Overrides EntityBase:: | |
| ConfigEntityBase:: | protected | function | Override to never invalidate the entity's cache tag; the config system
already invalidates it. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Checks whether this entity is installable. Overrides ConfigEntityInterface:: | 2 | 
| ConfigEntityBase:: | public | function | Overrides Entity::isNew(). Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Returns whether this entity is being changed during the uninstall process. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Deprecated way of generating a link to the entity. See toLink(). Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Informs the entity that entities it depends on will be deleted. Overrides ConfigEntityInterface:: | 7 | 
| ConfigEntityBase:: | public static | function | Acts on entities before they are deleted and before hooks are invoked. Overrides EntityBase:: | 8 | 
| ConfigEntityBase:: | public | function | Saves an entity permanently. Overrides EntityBase:: | 1 | 
| ConfigEntityBase:: | public | function | Sets the value of a property. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Sets the original ID. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Sets the status of the configuration entity. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Sets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: | |
| ConfigEntityBase:: | public | function | ||
| ConfigEntityBase:: | public static | function | Helper callback for uasort() to sort configuration entities by weight and label. | 6 | 
| ConfigEntityBase:: | public | function | Returns whether the configuration entity is enabled. Overrides ConfigEntityInterface:: | 4 | 
| ConfigEntityBase:: | public | function | Gets an array of all property values. Overrides EntityBase:: | 2 | 
| ConfigEntityBase:: | public | function | Gets the URL object for the entity. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Sets that the data should be trusted. Overrides ConfigEntityInterface:: | |
| ConfigEntityBase:: | public | function | Unsets a third-party setting. Overrides ThirdPartySettingsInterface:: | |
| ConfigEntityBase:: | public | function | Gets the public URL for this entity. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Gets the URL object for the entity. Overrides EntityBase:: | |
| ConfigEntityBase:: | public | function | Constructs an Entity object. Overrides EntityBase:: | 10 | 
| ConfigEntityBase:: | public | function | Overrides EntityBase:: | 4 | 
| ConfigEntityBundleBase:: | protected | function | Deletes display if a bundle is deleted. | |
| ConfigEntityBundleBase:: | protected | function | Returns view or form displays for this bundle. | |
| ConfigEntityBundleBase:: | public static | function | Acts on deleted entities before the delete hook is invoked. Overrides EntityBase:: | 2 | 
| ConfigEntityBundleBase:: | public | function | Acts on a saved entity before the insert or update hook is invoked. Overrides EntityBase:: | 2 | 
| ConfigEntityBundleBase:: | public | function | Acts on an entity before the presave hook is invoked. Overrides ConfigEntityBase:: | |
| DependencySerializationTrait:: | protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| DependencySerializationTrait:: | protected | property | An array of service IDs keyed by property name used for serialization. | |
| DependencySerializationTrait:: | public | function | Aliased as: traitSleep | 1 | 
| DependencySerializationTrait:: | public | function | 2 | |
| DependencyTrait:: | protected | property | The object's dependencies. | |
| DependencyTrait:: | protected | function | Adds multiple dependencies. | |
| DependencyTrait:: | protected | function | Adds a dependency. Aliased as: addDependencyTrait | |
| EntityBase:: | protected | property | Boolean indicating whether the entity should be forced to be new. | |
| EntityBase:: | protected | property | The entity type. | |
| EntityBase:: | protected | property | A typed data object wrapping this entity. | |
| EntityBase:: | public | function | Checks data value access. Overrides AccessibleInterface:: | 1 | 
| EntityBase:: | public | function | Gets the bundle of the entity. Overrides EntityInterface:: | 1 | 
| EntityBase:: | public static | function | Constructs a new entity object, without permanently saving it. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Deletes an entity permanently. Overrides EntityInterface:: | 2 | 
| EntityBase:: | public | function | Enforces an entity to be new. Overrides EntityInterface:: | |
| EntityBase:: | protected | function | Gets the entity manager. | |
| EntityBase:: | protected | function | Gets the entity type bundle info service. | |
| EntityBase:: | protected | function | Gets the entity type manager. | |
| EntityBase:: | public | function | The cache contexts associated with this object. Overrides CacheableDependencyTrait:: | |
| EntityBase:: | public | function | The maximum age for which this object may be cached. Overrides CacheableDependencyTrait:: | |
| EntityBase:: | public | function | The cache tags associated with this object. Overrides CacheableDependencyTrait:: | |
| EntityBase:: | public | function | Gets the key that is used to store configuration dependencies. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Gets the entity type definition. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Gets the ID of the type of the entity. Overrides EntityInterface:: | |
| EntityBase:: | protected | function | The list cache tags to invalidate for this entity. | |
| EntityBase:: | public | function | Gets a typed data object for this entity object. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Indicates if a link template exists for a given key. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Gets the identifier. Overrides EntityInterface:: | 11 | 
| EntityBase:: | public | function | Gets the label of the entity. Overrides EntityInterface:: | 6 | 
| EntityBase:: | public | function | Gets the language of the entity. Overrides EntityInterface:: | 1 | 
| EntityBase:: | protected | function | Gets the language manager. | |
| EntityBase:: | protected | function | Gets an array link templates. | 1 | 
| EntityBase:: | public static | function | Loads an entity. Overrides EntityInterface:: | |
| EntityBase:: | public static | function | Loads one or more entities. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Acts on a created entity before hooks are invoked. Overrides EntityInterface:: | 4 | 
| EntityBase:: | public static | function | Acts on loaded entities. Overrides EntityInterface:: | 2 | 
| EntityBase:: | public static | function | Changes the values of an entity before it is created. Overrides EntityInterface:: | 5 | 
| EntityBase:: | public | function | Gets a list of entities referenced by this entity. Overrides EntityInterface:: | 1 | 
| EntityBase:: | public | function | Generates the HTML for a link to this entity. Overrides EntityInterface:: | |
| EntityBase:: | public | function | Gets a list of URI relationships supported by this entity. Overrides EntityInterface:: | |
| EntityBase:: | protected | function | Gets an array of placeholders for this entity. | 2 | 
| EntityBase:: | public | function | Gets the entity UUID (Universally Unique Identifier). Overrides EntityInterface:: | 1 | 
| EntityBase:: | protected | function | Gets the UUID generator. | |
| PluginDependencyTrait:: | protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 | 
| PluginDependencyTrait:: | protected | function | Calculates and returns dependencies of a specific plugin instance. | |
| PluginDependencyTrait:: | protected | function | Wraps the module handler. | 1 | 
| PluginDependencyTrait:: | protected | function | Wraps the theme handler. | 1 | 
| RefinableCacheableDependencyTrait:: | public | function | 1 | |
| RefinableCacheableDependencyTrait:: | public | function | ||
| RefinableCacheableDependencyTrait:: | public | function | ||
| RefinableCacheableDependencyTrait:: | public | function | ||
| SynchronizableEntityTrait:: | protected | property | Whether this entity is being created, updated or deleted through a synchronization process. | |
| SynchronizableEntityTrait:: | public | function | ||
| SynchronizableEntityTrait:: | public | function | 
