Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Entity/RevisionableInterface.php \Drupal\Core\Entity\RevisionableInterface
  2. 9 core/lib/Drupal/Core/Entity/RevisionableInterface.php \Drupal\Core\Entity\RevisionableInterface

Provides methods for an entity to support revisions.

Classes implementing this interface do not necessarily support revisions.

To detect whether an entity type supports revisions, call EntityTypeInterface::isRevisionable().

Many entity interfaces are composed of numerous other interfaces such as this one, which allow implementations to pick and choose which features to. support through stub implementations of various interface methods. This means that even if an entity class implements RevisionableInterface, it might only have a stub implementation and not a functional one.

Hierarchy

Expanded class hierarchy of RevisionableInterface

All classes that implement RevisionableInterface

See also

\Drupal\Core\Entity\EntityTypeInterface::isRevisionable()

https://www.drupal.org/docs/8/api/entity-api/structure-of-an-entity-anno...

https://www.drupal.org/docs/8/api/entity-api/making-an-entity-revisionable

Related topics

10 files declare their use of RevisionableInterface
EntityAccessChecker.php in core/modules/jsonapi/src/Access/EntityAccessChecker.php
EntityOperations.php in core/modules/workspaces/src/EntityOperations.php
EntityValidationException.php in core/modules/migrate/src/Exception/EntityValidationException.php
InlineBlockEntityOperations.php in core/modules/layout_builder/src/InlineBlockEntityOperations.php
KeyValueContentEntityStorage.php in core/lib/Drupal/Core/Entity/KeyValueStore/KeyValueContentEntityStorage.php

... See full list

File

core/lib/Drupal/Core/Entity/RevisionableInterface.php, line 25

Namespace

Drupal\Core\Entity
View source
interface RevisionableInterface extends EntityInterface {

  /**
   * Determines whether a new revision should be created on save.
   *
   * @return bool
   *   TRUE if a new revision should be created.
   *
   * @see \Drupal\Core\Entity\EntityInterface::setNewRevision()
   */
  public function isNewRevision();

  /**
   * Enforces an entity to be saved as a new revision.
   *
   * @param bool $value
   *   (optional) Whether a new revision should be saved.
   *
   * @throws \LogicException
   *   Thrown if the entity does not support revisions.
   *
   * @see \Drupal\Core\Entity\EntityInterface::isNewRevision()
   */
  public function setNewRevision($value = TRUE);

  /**
   * Gets the revision identifier of the entity.
   *
   * @return int|null|string
   *   The revision identifier of the entity, or NULL if the entity does not
   *   have a revision identifier.
   */
  public function getRevisionId();

  /**
   * Gets the loaded Revision ID of the entity.
   *
   * @return int
   *   The loaded Revision identifier of the entity, or NULL if the entity
   *   does not have a revision identifier.
   */
  public function getLoadedRevisionId();

  /**
   * Updates the loaded Revision ID with the revision ID.
   *
   * This method should not be used, it could unintentionally cause the original
   * revision ID property value to be lost.
   *
   * @internal
   *
   * @return $this
   */
  public function updateLoadedRevisionId();

  /**
   * Checks if this entity is the default revision.
   *
   * @param bool $new_value
   *   (optional) A Boolean to (re)set the isDefaultRevision flag.
   *
   * @return bool
   *   TRUE if the entity is the default revision, FALSE otherwise. If
   *   $new_value was passed, the previous value is returned.
   */
  public function isDefaultRevision($new_value = NULL);

  /**
   * Checks whether the entity object was a default revision when it was saved.
   *
   * @return bool
   *   TRUE if the entity object was a revision, FALSE otherwise.
   */
  public function wasDefaultRevision();

  /**
   * Checks if this entity is the latest revision.
   *
   * @return bool
   *   TRUE if the entity is the latest revision, FALSE otherwise.
   */
  public function isLatestRevision();

  /**
   * Acts on a revision before it gets saved.
   *
   * @param EntityStorageInterface $storage
   *   The entity storage object.
   * @param object $record
   *   The revision object.
   */
  public function preSaveRevision(EntityStorageInterface $storage, \stdClass $record);

}

Members

Namesort descending Modifiers Type Description Overrides
AccessibleInterface::access public function Checks data value access. 6
CacheableDependencyInterface::getCacheContexts public function The cache contexts associated with this object. 12
CacheableDependencyInterface::getCacheMaxAge public function The maximum age for which this object may be cached. 12
CacheableDependencyInterface::getCacheTags public function The cache tags associated with this object. 12
EntityInterface::bundle public function Gets the bundle of the entity. 1
EntityInterface::create public static function Constructs a new entity object, without permanently saving it. 1
EntityInterface::createDuplicate public function Creates a duplicate of the entity. 2
EntityInterface::delete public function Deletes an entity permanently. 1
EntityInterface::enforceIsNew public function Enforces an entity to be new. 1
EntityInterface::getCacheTagsToInvalidate public function Returns the cache tags that should be used to invalidate caches. 3
EntityInterface::getConfigDependencyKey public function Gets the key that is used to store configuration dependencies. 1
EntityInterface::getConfigDependencyName public function Gets the configuration dependency name. 1
EntityInterface::getConfigTarget public function Gets the configuration target identifier for the entity. 1
EntityInterface::getEntityType public function Gets the entity type definition. 1
EntityInterface::getEntityTypeId public function Gets the ID of the type of the entity. 1
EntityInterface::getOriginalId public function Gets the original ID. 1
EntityInterface::getTypedData public function Gets a typed data object for this entity object. 1
EntityInterface::hasLinkTemplate public function Indicates if a link template exists for a given key. 1
EntityInterface::id public function Gets the identifier. 1
EntityInterface::isNew public function Determines whether the entity is new. 1
EntityInterface::label public function Gets the label of the entity. 3
EntityInterface::language public function Gets the language of the entity. 1
EntityInterface::load public static function Loads an entity. 1
EntityInterface::loadMultiple public static function Loads one or more entities. 1
EntityInterface::postCreate public function Acts on a created entity before hooks are invoked. 1
EntityInterface::postDelete public static function Acts on deleted entities before the delete hook is invoked. 7
EntityInterface::postLoad public static function Acts on loaded entities. 2
EntityInterface::postSave public function Acts on a saved entity before the insert or update hook is invoked. 8
EntityInterface::preCreate public static function Changes the values of an entity before it is created. 4
EntityInterface::preDelete public static function Acts on entities before they are deleted and before hooks are invoked. 6
EntityInterface::preSave public function Acts on an entity before the presave hook is invoked. 8
EntityInterface::referencedEntities public function Gets a list of entities referenced by this entity. 2
EntityInterface::save public function Saves an entity permanently. 3
EntityInterface::setOriginalId public function Sets the original ID. 1
EntityInterface::toArray public function Gets an array of all property values. 2
EntityInterface::toLink public function Generates the HTML for a link to this entity. 1
EntityInterface::toUrl public function Gets the URL object for the entity. 1
EntityInterface::uriRelationships public function Gets a list of URI relationships supported by this entity. 1
EntityInterface::uuid public function Gets the entity UUID (Universally Unique Identifier). 1
RefinableCacheableDependencyInterface::addCacheableDependency public function Adds a dependency on an object: merges its cacheability metadata.
RefinableCacheableDependencyInterface::addCacheContexts public function Adds cache contexts.
RefinableCacheableDependencyInterface::addCacheTags public function Adds cache tags.
RefinableCacheableDependencyInterface::mergeCacheMaxAge public function Merges the maximum age (in seconds) with the existing maximum age.
RevisionableInterface::getLoadedRevisionId public function Gets the loaded Revision ID of the entity.
RevisionableInterface::getRevisionId public function Gets the revision identifier of the entity.
RevisionableInterface::isDefaultRevision public function Checks if this entity is the default revision.
RevisionableInterface::isLatestRevision public function Checks if this entity is the latest revision.
RevisionableInterface::isNewRevision public function Determines whether a new revision should be created on save.
RevisionableInterface::preSaveRevision public function Acts on a revision before it gets saved. 3
RevisionableInterface::setNewRevision public function Enforces an entity to be saved as a new revision.
RevisionableInterface::updateLoadedRevisionId public function Updates the loaded Revision ID with the revision ID.
RevisionableInterface::wasDefaultRevision public function Checks whether the entity object was a default revision when it was saved.