![]() 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/cartforge.co/vendor/magento/module-catalog-rule/Model/Indexer/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\CatalogRule\Model\Indexer; use Magento\Framework\Mview\ActionInterface as MviewActionInterface; use Magento\Framework\Indexer\ActionInterface as IndexerActionInterface; use Magento\Framework\DataObject\IdentityInterface; use Magento\Framework\Indexer\CacheContext; /** * Abstract class for CatalogRule indexers. */ abstract class AbstractIndexer implements IndexerActionInterface, MviewActionInterface, IdentityInterface { /** * @var IndexBuilder */ protected $indexBuilder; /** * Application Event Dispatcher * * @var \Magento\Framework\Event\ManagerInterface */ protected $_eventManager; /** * @var \Magento\Framework\App\CacheInterface */ private $cacheManager; /** * @var \Magento\Framework\Indexer\CacheContext */ protected $cacheContext; /** * @param IndexBuilder $indexBuilder * @param \Magento\Framework\Event\ManagerInterface $eventManager */ public function __construct( IndexBuilder $indexBuilder, \Magento\Framework\Event\ManagerInterface $eventManager ) { $this->indexBuilder = $indexBuilder; $this->_eventManager = $eventManager; } /** * Execute materialization on ids entities * * @param int[] $ids * @return void */ public function execute($ids) { $this->executeList($ids); } /** * Execute full indexation * * @return void */ public function executeFull() { $this->indexBuilder->reindexFull(); $this->_eventManager->dispatch('clean_cache_by_tags', ['object' => $this]); $this->getCacheManager()->clean($this->getIdentities()); } /** * Get affected cache tags * * @return array * @codeCoverageIgnore */ public function getIdentities() { return [ \Magento\Catalog\Model\Category::CACHE_TAG, \Magento\Catalog\Model\Product::CACHE_TAG, \Magento\Framework\App\Cache\Type\Block::CACHE_TAG ]; } /** * Execute partial indexation by ID list * * @param int[] $ids * @throws \Magento\Framework\Exception\LocalizedException * @return void */ public function executeList(array $ids) { if (!$ids) { throw new \Magento\Framework\Exception\LocalizedException( __('Could not rebuild index for empty products array') ); } $this->doExecuteList($ids); } /** * Execute partial indexation by ID list. Template method * * @param int[] $ids * @return void */ abstract protected function doExecuteList($ids); /** * Execute partial indexation by ID * * @param int $id * @throws \Magento\Framework\Exception\LocalizedException * @return void */ public function executeRow($id) { if (!$id) { throw new \Magento\Framework\Exception\LocalizedException( __('We can\'t rebuild the index for an undefined product.') ); } $this->doExecuteRow($id); } /** * Execute partial indexation by ID. Template method * * @param int $id * @throws \Magento\Framework\Exception\LocalizedException * @return void */ abstract protected function doExecuteRow($id); /** * Get cache manager * * @return \Magento\Framework\App\CacheInterface|mixed * @deprecated 100.0.7 */ private function getCacheManager() { if ($this->cacheManager === null) { $this->cacheManager = \Magento\Framework\App\ObjectManager::getInstance()->get( \Magento\Framework\App\CacheInterface::class ); } return $this->cacheManager; } /** * Get cache context * * @return \Magento\Framework\Indexer\CacheContext * @deprecated 100.0.7 */ protected function getCacheContext() { if (!($this->cacheContext instanceof CacheContext)) { return \Magento\Framework\App\ObjectManager::getInstance()->get(CacheContext::class); } else { return $this->cacheContext; } } }