Skip to content

Commit

Permalink
Minor Reformatting
Browse files Browse the repository at this point in the history
+ I'm particular, sorry! xD
  • Loading branch information
pykettk committed Nov 7, 2022
1 parent a8ca36b commit 22fb4da
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 26 deletions.
42 changes: 29 additions & 13 deletions Console/Command/IndexerLockAll.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
<?php

/**
* Copyright © element119. All rights reserved.
* See LICENCE.txt for licence details.
*/
declare(strict_types=1);

namespace Element119\IndexerDeployConfig\Console\Command;
Expand All @@ -19,24 +22,24 @@

class IndexerLockAll extends AbstractIndexerCommand
{
private \Magento\Framework\App\DeploymentConfig\Writer $configWriter;
/** @var Writer */
private Writer $configWriter;

/** @var array */
public array $modes = [
IndexerSetModeCommand::INPUT_KEY_SCHEDULE,
IndexerSetModeCommand::INPUT_KEY_REALTIME
];

/**
* Constructor.
*
* @param ObjectManagerFactory $objectManagerFactory
* @param Writer $configWriter
* @param ObjectManagerFactory $objectManagerFactory
* @param Writer $configWriter
* @param CollectionFactory|null $collectionFactory
*/
public function __construct(
ObjectManagerFactory $objectManagerFactory,
\Magento\Framework\App\DeploymentConfig\Writer $configWriter,
\Magento\Indexer\Model\Indexer\CollectionFactory $collectionFactory = null
Writer $configWriter,
CollectionFactory $collectionFactory = null
) {
parent::__construct($objectManagerFactory, $collectionFactory);
$this->configWriter = $configWriter;
Expand All @@ -62,11 +65,20 @@ protected function execute(
/** @var Indexer $indexer */
foreach ($this->getAllIndexers() as $indexer) {
$mode = $modeInput;

if (is_null($modeInput)) {
$mode = $indexer->isScheduled() ? IndexerSetModeCommand::INPUT_KEY_SCHEDULE : IndexerSetModeCommand::INPUT_KEY_REALTIME;
$mode = $indexer->isScheduled()
? IndexerSetModeCommand::INPUT_KEY_SCHEDULE
: IndexerSetModeCommand::INPUT_KEY_REALTIME;
}

$indexerConfig[$mode][] = $indexer->getIndexerId();
$output->writeln($indexer->getTitle() . ' indexer has been locked to ' . ($mode === IndexerSetModeCommand::INPUT_KEY_SCHEDULE ? 'Update on Schedule' : 'Update on Save'));

$output->writeln(sprintf(
'%S indexer has been locked to %s',
$indexer->getTitle(),
$mode === IndexerSetModeCommand::INPUT_KEY_SCHEDULE ? 'Update on Schedule' : 'Update on Save'
));
}

$this->configWriter->saveConfig([ConfigFilePool::APP_CONFIG => ['indexers' => $indexerConfig]], true);
Expand All @@ -81,13 +93,17 @@ protected function configure()
$this->setDescription('Lock all indexers');
$this->setDefinition([
new InputOption(
IndexerSetModeCommand::INPUT_KEY_MODE, 'm',
IndexerSetModeCommand::INPUT_KEY_MODE,
'm',
InputArgument::OPTIONAL,
'Passing one of two modes (' . implode(', ',
$this->modes) . ') will lock all indexers to that mode',
sprintf(
'Passing one of two modes (%s) will lock all indexers to that mode.',
implode(', ', $this->modes)
),
null
),
]);

parent::configure();
}
}
12 changes: 7 additions & 5 deletions Plugin/SetIndexerModeRealtime.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,20 @@

use Element119\IndexerDeployConfig\Model\IndexerConfig;
use Magento\Framework\Message\ManagerInterface as MessageManagerInterface;
use Magento\Indexer\Console\Command\IndexerSetModeCommand as IndexerMode;
use Magento\Indexer\Controller\Adminhtml\Indexer\MassChangelog;
use Magento\Indexer\Controller\Adminhtml\Indexer\MassOnTheFly;
use Magento\Indexer\Model\Indexer;
use Magento\Indexer\Console\Command\IndexerSetModeCommand;

class SetIndexerModeRealtime extends SetIndexerMode
{
/**
* @param IndexerConfig $indexerConfig
* @param MessageManagerInterface $messageManager
* @param string $indexerMode
*/
public function __construct(
IndexerConfig $indexerConfig,
MessageManagerInterface $messageManager,
string $indexerMode = ''
) {
parent::__construct('save', $messageManager, $indexerMode);
parent::__construct($indexerConfig, $messageManager, IndexerSetModeCommand::INPUT_KEY_REALTIME);
}
}
12 changes: 7 additions & 5 deletions Plugin/SetIndexerModeSchedule.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,20 @@

use Element119\IndexerDeployConfig\Model\IndexerConfig;
use Magento\Framework\Message\ManagerInterface as MessageManagerInterface;
use Magento\Indexer\Console\Command\IndexerSetModeCommand as IndexerMode;
use Magento\Indexer\Controller\Adminhtml\Indexer\MassChangelog;
use Magento\Indexer\Controller\Adminhtml\Indexer\MassOnTheFly;
use Magento\Indexer\Model\Indexer;
use Magento\Indexer\Console\Command\IndexerSetModeCommand;

class SetIndexerModeSchedule extends SetIndexerMode
{
/**
* @param IndexerConfig $indexerConfig
* @param MessageManagerInterface $messageManager
* @param string $indexerMode
*/
public function __construct(
IndexerConfig $indexerConfig,
MessageManagerInterface $messageManager,
string $indexerMode = ''
) {
parent::__construct('schedule', $messageManager, $indexerMode);
parent::__construct($indexerConfig, $messageManager, IndexerSetModeCommand::INPUT_KEY_SCHEDULE);
}
}
6 changes: 4 additions & 2 deletions etc/adminhtml/di.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<!-- Prevent Indexer Mode Changes from Save to Schedule -->
<type name="Magento\Indexer\Controller\Adminhtml\Indexer\MassChangelog">
<plugin name="config_based_indexer_mode_mass_action_schedule" type="\Element119\IndexerDeployConfig\Plugin\SetIndexerModeRealtime"/>
<plugin name="config_based_indexer_mode_mass_action_schedule"
type="\Element119\IndexerDeployConfig\Plugin\SetIndexerModeRealtime"/>
</type>

<!-- Prevent Indexer Mode Changes from Schedule to Save -->
<type name="Magento\Indexer\Controller\Adminhtml\Indexer\MassOnTheFly">
<plugin name="config_based_indexer_mode_mass_action_save" type="\Element119\IndexerDeployConfig\Plugin\SetIndexerModeSchedule"/>
<plugin name="config_based_indexer_mode_mass_action_save"
type="\Element119\IndexerDeployConfig\Plugin\SetIndexerModeSchedule"/>
</type>
</config>
4 changes: 3 additions & 1 deletion etc/di.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
<type name="Magento\Framework\Console\CommandList">
<arguments>
<argument name="commands" xsi:type="array">
<item name="IndexerLockAll" xsi:type="object">Element119\IndexerDeployConfig\Console\Command\IndexerLockAll</item>
<item name="IndexerLockAll" xsi:type="object">
Element119\IndexerDeployConfig\Console\Command\IndexerLockAll
</item>
</argument>
</arguments>
</type>
Expand Down

0 comments on commit 22fb4da

Please sign in to comment.