You are here

public function SynchronizableInterface::isSyncing in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Entity/SynchronizableInterface.php \Drupal\Core\Entity\SynchronizableInterface::isSyncing()
  2. 10 core/lib/Drupal/Core/Entity/SynchronizableInterface.php \Drupal\Core\Entity\SynchronizableInterface::isSyncing()

Returns whether this entity is being changed as part of a synchronization.

If you are writing code that responds to a change in this entity (insert, update, delete, presave, etc.), and your code would result in a change to this entity itself, a configuration change (whether related to this entity, another entity, or non-entity configuration), you need to check and see if this entity change is part of a synchronization process, and skip executing your code if that is the case.

For example, \Drupal\node\Entity\NodeType::postSave() adds the default body field to newly created node type configuration entities, which is a configuration change. You would not want this code to run during an import, because imported entities were already given the body field when they were originally created, and the imported configuration includes all of their currently-configured fields. On the other hand, \Drupal\field\Entity\FieldStorageConfig::preSave() and the methods it calls make sure that the storage tables are created or updated for the field storage configuration entity, which is not a configuration change, and it must be done whether due to an import or not. So, the first method should check $entity->isSyncing() and skip executing if it returns TRUE, and the second should not perform this check.

Return value

bool TRUE if the configuration entity is being created, updated, or deleted through a synchronization process.

1 method overrides SynchronizableInterface::isSyncing()
ViewUI::isSyncing in core/modules/views_ui/src/ViewUI.php
Returns whether this entity is being changed as part of a synchronization.

File

core/lib/Drupal/Core/Entity/SynchronizableInterface.php, line 47

Class

SynchronizableInterface
Defines methods for an entity that supports synchronization.

Namespace

Drupal\Core\Entity

Code

public function isSyncing();