Collection.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Model\ResourceModel\Db\VersionControl;
  7. /**
  8. * Class Collection
  9. */
  10. abstract class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection
  11. {
  12. /**
  13. * @var Snapshot
  14. */
  15. protected $entitySnapshot;
  16. /**
  17. * @param \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory
  18. * @param \Psr\Log\LoggerInterface $logger
  19. * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
  20. * @param \Magento\Framework\Event\ManagerInterface $eventManager
  21. * @param Snapshot $entitySnapshot
  22. * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection
  23. * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource
  24. */
  25. public function __construct(
  26. \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory,
  27. \Psr\Log\LoggerInterface $logger,
  28. \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
  29. \Magento\Framework\Event\ManagerInterface $eventManager,
  30. Snapshot $entitySnapshot,
  31. \Magento\Framework\DB\Adapter\AdapterInterface $connection = null,
  32. \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null
  33. ) {
  34. $this->entitySnapshot = $entitySnapshot;
  35. parent::__construct(
  36. $entityFactory,
  37. $logger,
  38. $fetchStrategy,
  39. $eventManager,
  40. $connection,
  41. $resource
  42. );
  43. }
  44. /**
  45. * @inheritdoc
  46. */
  47. public function fetchItem()
  48. {
  49. $item = parent::fetchItem();
  50. if ($item) {
  51. $this->entitySnapshot->registerSnapshot($item);
  52. }
  53. return $item;
  54. }
  55. /**
  56. * @inheritdoc
  57. */
  58. protected function beforeAddLoadedItem(\Magento\Framework\DataObject $item)
  59. {
  60. $this->entitySnapshot->registerSnapshot($item);
  61. return $item;
  62. }
  63. }