![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-indexer/Model/Config/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Indexer\Model\Config; use Magento\Framework\Serialize\SerializerInterface; use Magento\Framework\App\ObjectManager; /** * Provides indexer configuration */ class Data extends \Magento\Framework\Config\Data { /** * @var \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection */ protected $stateCollection; /** * Constructor * * @param \Magento\Framework\Indexer\Config\Reader $reader * @param \Magento\Framework\Config\CacheInterface $cache * @param \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection $stateCollection * @param string|null $cacheId * @param SerializerInterface|null $serializer */ public function __construct( \Magento\Framework\Indexer\Config\Reader $reader, \Magento\Framework\Config\CacheInterface $cache, \Magento\Indexer\Model\ResourceModel\Indexer\State\Collection $stateCollection, $cacheId = 'indexer_config', SerializerInterface $serializer = null ) { $this->stateCollection = $stateCollection; $isCacheExists = $cache->test($cacheId); parent::__construct($reader, $cache, $cacheId, $serializer); if (!$isCacheExists) { $this->deleteNonexistentStates(); } } /** * Delete all states that are not in configuration * * @return void */ protected function deleteNonexistentStates() { foreach ($this->stateCollection->getItems() as $state) { /** @var \Magento\Indexer\Model\Indexer\State $state */ if (!isset($this->_data[$state->getIndexerId()])) { $state->delete(); } } } }