Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\CoreBundle\Predis\Replication; | |
| use Predis\Replication\ReplicationStrategy; | |
| class MasterOnlyStrategy extends ReplicationStrategy | |
| { | |
| public function __construct( | |
| private StrategyConfig $config | |
| ) { | |
| parent::__construct(); | |
| } | |
| /** | |
| * @return mixed[] | |
| */ | |
| protected function getReadOnlyOperations(): array | |
| { | |
| if ($this->config->usePrimaryOnly()) { | |
| return []; | |
| } | |
| return parent::getReadOnlyOperations(); | |
| } | |
| /** | |
| * @return mixed[] | |
| */ | |
| protected function getDisallowedOperations(): array | |
| { | |
| $operations = parent::getDisallowedOperations(); | |
| unset($operations['INFO']); // removed to avoid "The command 'INFO' is not allowed in replication mode." error when executing bin/console cache:clear. INFO is safe if you only have one master that handles all operations. | |
| return $operations; | |
| } | |
| } | |