moduleDataSetup = $moduleDataSetup; $this->statesFactory = $statesFactory; $this->stateFactory = $stateFactory; $this->config = $config; $this->encryptor = $encryptor; $this->encoder = $encoder; } /** * {@inheritdoc} */ public function apply() { /** @var State[] $stateIndexers */ $stateIndexers = []; $states = $this->statesFactory->create(); foreach ($states->getItems() as $state) { /** @var State $state */ $stateIndexers[$state->getIndexerId()] = $state; } foreach ($this->config->getIndexers() as $indexerId => $indexerConfig) { $hash = $this->encryptor->hash($this->encoder->encode($indexerConfig), Encryptor::HASH_VERSION_MD5); if (isset($stateIndexers[$indexerId])) { $stateIndexers[$indexerId]->setHashConfig($hash); $stateIndexers[$indexerId]->save(); } else { /** @var State $state */ $state = $this->stateFactory->create(); $state->loadByIndexer($indexerId); $state->setHashConfig($hash); $state->setStatus(StateInterface::STATUS_INVALID); $state->save(); } } } /** * {@inheritdoc} */ public static function getDependencies() { return []; } /** * {@inheritdoc} */ public static function getVersion() { return '2.1.0'; } /** * {@inheritdoc} */ public function getAliases() { return []; } }