You are here

interface EntityChangedInterface in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Entity/EntityChangedInterface.php \Drupal\Core\Entity\EntityChangedInterface
  2. 9 core/lib/Drupal/Core/Entity/EntityChangedInterface.php \Drupal\Core\Entity\EntityChangedInterface

Defines an interface for entity change timestamp tracking.

This data may be useful for more precise cache invalidation (especially on the client side) and concurrent editing locking.

The entity system automatically adds in the 'EntityChanged' constraint for entity types implementing this interface in order to disallow concurrent editing.

Hierarchy

Expanded class hierarchy of EntityChangedInterface

All classes that implement EntityChangedInterface

See also

\Drupal\Core\Entity\Plugin\Validation\Constraint\EntityChangedConstraint

20 files declare their use of EntityChangedInterface
BlockContentInterface.php in core/modules/block_content/src/BlockContentInterface.php
CommentInterface.php in core/modules/comment/src/CommentInterface.php
CommentStatistics.php in core/modules/comment/src/CommentStatistics.php
ContentTranslationHandler.php in core/modules/content_translation/src/ContentTranslationHandler.php
ContentTranslationUITestBase.php in core/modules/content_translation/tests/src/Functional/ContentTranslationUITestBase.php

... See full list

File

core/lib/Drupal/Core/Entity/EntityChangedInterface.php, line 17

Namespace

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

  /**
   * Gets the timestamp of the last entity change for the current translation.
   *
   * @return int
   *   The timestamp of the last entity save operation.
   */
  public function getChangedTime();

  /**
   * Sets the timestamp of the last entity change for the current translation.
   *
   * @param int $timestamp
   *   The timestamp of the last entity save operation.
   *
   * @return $this
   */
  public function setChangedTime($timestamp);

  /**
   * Gets the timestamp of the last entity change across all translations.
   *
   * This method will return the highest timestamp across all translations. To
   * check that no translation is older than in another version of the entity
   * (e.g. to avoid overwriting newer translations with old data), compare each
   * translation to the other version individually.
   *
   * @return int
   *   The timestamp of the last entity save operation across all
   *   translations.
   */
  public function getChangedTimeAcrossTranslations();

}

Members