Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Attributes
EntitySnapshot Class Reference

Public Member Functions

 __construct (MetadataPool $metadataPool, AttributeProvider $attributeProvider)
 
 registerSnapshot ($entityType, $entity)
 
 isModified ($entityType, $entity)
 

Protected Attributes

 $snapshotData = []
 
 $metadataPool
 
 $attributeProvider
 

Detailed Description

Class EntitySnapshot

Definition at line 15 of file EntitySnapshot.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( MetadataPool  $metadataPool,
AttributeProvider  $attributeProvider 
)
Parameters
MetadataPool$metadataPool
AttributeProvider$attributeProvider

Definition at line 38 of file EntitySnapshot.php.

41  {
42  $this->metadataPool = $metadataPool;
43  $this->attributeProvider = $attributeProvider;
44  }

Member Function Documentation

◆ isModified()

isModified (   $entityType,
  $entity 
)

Check is current entity has changes, by comparing current object state with stored snapshot

Parameters
string$entityType
object$entity
Returns
bool

Definition at line 68 of file EntitySnapshot.php.

69  {
70  $metadata = $this->metadataPool->getMetadata($entityType);
71  $hydrator = $this->metadataPool->getHydrator($entityType);
72  $entityData = $hydrator->extract($entity);
73  if (empty($entityData[$metadata->getIdentifierField()])) {
74  return true;
75  }
76  $identifier = $entityData[$metadata->getIdentifierField()];
77  if (!isset($this->snapshotData[$entityType][$identifier])) {
78  return true;
79  }
80  foreach ($this->snapshotData[$entityType][$identifier] as $field => $value) {
81  if (isset($entityData[$field]) && $entityData[$field] != $value) {
82  return true;
83  }
84  }
85  return false;
86  }
$value
Definition: gender.phtml:16
$entity
Definition: element.phtml:22

◆ registerSnapshot()

registerSnapshot (   $entityType,
  $entity 
)
Parameters
string$entityType
object$entity
Returns
void

Definition at line 51 of file EntitySnapshot.php.

52  {
53  $metadata = $this->metadataPool->getMetadata($entityType);
54  $hydrator = $this->metadataPool->getHydrator($entityType);
55  $entityData = $hydrator->extract($entity);
56  $attributes = $this->attributeProvider->getAttributes($entityType);
57  $this->snapshotData[$entityType][$entityData[$metadata->getIdentifierField()]]
58  = array_intersect_key($entityData, $attributes);
59  }
$entity
Definition: element.phtml:22
$attributes
Definition: matrix.phtml:13

Field Documentation

◆ $attributeProvider

$attributeProvider
protected

Definition at line 32 of file EntitySnapshot.php.

◆ $metadataPool

$metadataPool
protected

Definition at line 27 of file EntitySnapshot.php.

◆ $snapshotData

$snapshotData = []
protected

Definition at line 22 of file EntitySnapshot.php.


The documentation for this class was generated from the following file: