AfterEntitySave.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\EntityManager\Observer;
  7. use Magento\Framework\Event\ObserverInterface;
  8. use Magento\Framework\Event\Observer;
  9. use Magento\Framework\Model\AbstractModel;
  10. use Magento\Framework\Model\ResourceModel\Db\AbstractDb;
  11. /**
  12. * Class AfterEntitySave
  13. */
  14. class AfterEntitySave implements ObserverInterface
  15. {
  16. /**
  17. * Apply model save operation
  18. *
  19. * @param Observer $observer
  20. * @throws \Magento\Framework\Validator\Exception
  21. * @return void
  22. */
  23. public function execute(Observer $observer)
  24. {
  25. $entity = $observer->getEvent()->getEntity();
  26. if ($entity instanceof AbstractModel) {
  27. if (method_exists($entity->getResource(), 'loadAllAttributes')) {
  28. $entity->getResource()->loadAllAttributes($entity);
  29. }
  30. $entity->getResource()->afterSave($entity);
  31. $entity->afterSave();
  32. $entity->getResource()->addCommitCallback([$entity, 'afterCommitCallback']);
  33. if ($entity->getResource() instanceof AbstractDb) {
  34. $entity->getResource()->unserializeFields($entity);
  35. }
  36. $entity->setHasDataChanges(false);
  37. }
  38. }
  39. }