Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Mode.php
Go to the documentation of this file.
1 <?php
7 
11 class Mode extends \Magento\Framework\App\Config\Value
12 {
16  protected $indexerState;
17 
21  protected $indexerRegistry;
22 
34  public function __construct(
35  \Magento\Framework\Model\Context $context,
36  \Magento\Framework\Registry $registry,
38  \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList,
39  \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry,
40  \Magento\Indexer\Model\Indexer\State $indexerState,
41  \Magento\Framework\Model\ResourceModel\AbstractResource $resource = null,
42  \Magento\Framework\Data\Collection\AbstractDb $resourceCollection = null,
43  array $data = []
44  ) {
45  parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);
46  $this->indexerRegistry = $indexerRegistry;
47  $this->indexerState = $indexerState;
48  }
49 
55  public function afterSave()
56  {
57  $this->_getResource()->addCommitCallback([$this, 'processValue']);
58  return parent::afterSave();
59  }
60 
66  public function processValue()
67  {
68  if ((bool)$this->getValue() != (bool)$this->getOldValue()) {
69  if ((bool)$this->getValue()) {
70  $this->indexerState->loadByIndexer(\Magento\Catalog\Model\Indexer\Category\Flat\State::INDEXER_ID);
71  $this->indexerState->setStatus(\Magento\Framework\Indexer\StateInterface::STATUS_INVALID);
72  $this->indexerState->save();
73  } else {
74  $this->indexerRegistry->get(\Magento\Catalog\Model\Indexer\Category\Flat\State::INDEXER_ID)
75  ->setScheduled(false);
76  }
77  }
78  }
79 }
__construct(\Magento\Framework\Model\Context $context, \Magento\Framework\Registry $registry, \Magento\Framework\App\Config\ScopeConfigInterface $config, \Magento\Framework\App\Cache\TypeListInterface $cacheTypeList, \Magento\Framework\Indexer\IndexerRegistry $indexerRegistry, \Magento\Indexer\Model\Indexer\State $indexerState, \Magento\Framework\Model\ResourceModel\AbstractResource $resource=null, \Magento\Framework\Data\Collection\AbstractDb $resourceCollection=null, array $data=[])
Definition: Mode.php:34
$config
Definition: fraud_order.php:17
$resource
Definition: bulk.php:12