
| Current Path : /var/www/html/ift/web/core/lib/Drupal/Core/Entity/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/ift/web/core/lib/Drupal/Core/Entity/EntityChangesDetectionTrait.php |
<?php
namespace Drupal\Core\Entity;
/**
* Provides helper methods to detect changes in an entity object.
*
* @internal This may be replaced by a proper entity comparison handler.
*/
trait EntityChangesDetectionTrait {
/**
* Returns an array of field names to skip when checking for changes.
*
* @param \Drupal\Core\Entity\ContentEntityInterface $entity
* A content entity object.
*
* @return string[]
* An array of field names.
*/
protected function getFieldsToSkipFromTranslationChangesCheck(ContentEntityInterface $entity) {
/** @var \Drupal\Core\Entity\ContentEntityTypeInterface $entity_type */
$entity_type = $entity->getEntityType();
// A list of known revision metadata fields which should be skipped from
// the comparision.
$fields = [
$entity_type->getKey('revision'),
$entity_type->getKey('revision_translation_affected'),
];
$fields = array_merge($fields, array_values($entity_type->getRevisionMetadataKeys()));
// Computed fields should be skipped by the check for translation changes.
foreach (array_diff_key($entity->getFieldDefinitions(), array_flip($fields)) as $field_name => $field_definition) {
if ($field_definition->isComputed()) {
$fields[] = $field_name;
}
}
return $fields;
}
}