<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Model\ResourceModel\Db\VersionControl; /** * Class Collection */ abstract class Collection extends \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection { /** * @var Snapshot */ protected $entitySnapshot; /** * @param \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory * @param \Psr\Log\LoggerInterface $logger * @param \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy * @param \Magento\Framework\Event\ManagerInterface $eventManager * @param Snapshot $entitySnapshot * @param \Magento\Framework\DB\Adapter\AdapterInterface $connection * @param \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource */ public function __construct( \Magento\Framework\Data\Collection\EntityFactoryInterface $entityFactory, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Data\Collection\Db\FetchStrategyInterface $fetchStrategy, \Magento\Framework\Event\ManagerInterface $eventManager, Snapshot $entitySnapshot, \Magento\Framework\DB\Adapter\AdapterInterface $connection = null, \Magento\Framework\Model\ResourceModel\Db\AbstractDb $resource = null ) { $this->entitySnapshot = $entitySnapshot; parent::__construct( $entityFactory, $logger, $fetchStrategy, $eventManager, $connection, $resource ); } /** * @inheritdoc */ public function fetchItem() { $item = parent::fetchItem(); if ($item) { $this->entitySnapshot->registerSnapshot($item); } return $item; } /** * @inheritdoc */ protected function beforeAddLoadedItem(\Magento\Framework\DataObject $item) { $this->entitySnapshot->registerSnapshot($item); return $item; } }