![]() 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-catalog/Model/Indexer/Category/Flat/Plugin/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Catalog\Model\Indexer\Category\Flat\Plugin; use Magento\Catalog\Model\Indexer\Category\Flat\State; use Magento\Framework\Indexer\IndexerRegistry; use Magento\Framework\Model\AbstractModel; use Magento\Framework\Model\ResourceModel\Db\AbstractDb; class StoreGroup { /** * @var IndexerRegistry */ protected $indexerRegistry; /** * @var State */ protected $state; /** * @param IndexerRegistry $indexerRegistry * @param State $state */ public function __construct(IndexerRegistry $indexerRegistry, State $state) { $this->indexerRegistry = $indexerRegistry; $this->state = $state; } /** * Validate changes for invalidating indexer * * @param AbstractModel $group * @return bool */ protected function validate(AbstractModel $group) { return $group->dataHasChangedFor('root_category_id') && !$group->isObjectNew(); } /** * Invalidate flat category indexer if root category changed for store group * * @param AbstractDb $subject * @param AbstractDb $result * @param AbstractModel $group * @return AbstractDb * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function afterSave(AbstractDb $subject, AbstractDb $result, AbstractModel $group) { if ($this->validate($group) && $this->state->isFlatEnabled()) { $this->indexerRegistry->get(State::INDEXER_ID)->invalidate(); } return $result; } }