AbstractCollection.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Eav\Model\Entity\Collection\VersionControl;
  7. /**
  8. * Class Abstract Collection
  9. * @api
  10. * @since 100.0.2
  11. */
  12. abstract class AbstractCollection extends \Magento\Eav\Model\Entity\Collection\AbstractCollection
  13. {
  14. /**
  15. * @var \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot
  16. */
  17. protected $entitySnapshot;
  18. /**
  19. * @param \Magento\Framework\Data\Collection\EntityFactory $entityFactory
  20. * @param \Psr\Log\LoggerInterface $logger
  21. * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy
  22. * @param \Magento\Framework\Event\ManagerInterface $eventManager
  23. * @param \Magento\Eav\Model\Config $eavConfig
  24. * @param \Magento\Framework\App\ResourceConnection $resource
  25. * @param \Magento\Eav\Model\EntityFactory $eavEntityFactory
  26. * @param \Magento\Eav\Model\ResourceModel\Helper $resourceHelper
  27. * @param \Magento\Framework\Validator\UniversalFactory $universalFactory
  28. * @param \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot,
  29. * @param mixed $connection
  30. * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  31. * @codeCoverageIgnore
  32. */
  33. public function __construct(
  34. \Magento\Framework\Data\Collection\EntityFactory $entityFactory,
  35. \Psr\Log\LoggerInterface $logger,
  36. \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy,
  37. \Magento\Framework\Event\ManagerInterface $eventManager,
  38. \Magento\Eav\Model\Config $eavConfig,
  39. \Magento\Framework\App\ResourceConnection $resource,
  40. \Magento\Eav\Model\EntityFactory $eavEntityFactory,
  41. \Magento\Eav\Model\ResourceModel\Helper $resourceHelper,
  42. \Magento\Framework\Validator\UniversalFactory $universalFactory,
  43. \Magento\Framework\Model\ResourceModel\Db\VersionControl\Snapshot $entitySnapshot,
  44. \Magento\Framework\DB\Adapter\AdapterInterface $connection = null
  45. ) {
  46. $this->entitySnapshot = $entitySnapshot;
  47. parent::__construct(
  48. $entityFactory,
  49. $logger,
  50. $fetchStrategy,
  51. $eventManager,
  52. $eavConfig,
  53. $resource,
  54. $eavEntityFactory,
  55. $resourceHelper,
  56. $universalFactory,
  57. $connection
  58. );
  59. }
  60. /**
  61. * @inheritdoc
  62. */
  63. public function fetchItem()
  64. {
  65. $item = parent::fetchItem();
  66. if ($item) {
  67. $this->entitySnapshot->registerSnapshot($item);
  68. }
  69. return $item;
  70. }
  71. /**
  72. * @inheritdoc
  73. * @codeCoverageIgnore
  74. */
  75. protected function beforeAddLoadedItem(\Magento\Framework\DataObject $item)
  76. {
  77. $this->entitySnapshot->registerSnapshot($item);
  78. return $item;
  79. }
  80. }