Magento 2: как установить значения конфигурации через CLI

В Magento 2 интерфейс командной строки (CLI) предоставляет удобный способ управления различными аспектами вашего интернет-магазина. Одной из важных задач является установка значений конфигурации через CLI. В этой статье блога мы рассмотрим несколько методов с примерами кода, которые помогут вам в этом.

Метод 1: использование команды bin/magento
Инструмент командной строки bin/magento предлагает широкий спектр функций, включая установку значений конфигурации. Чтобы установить значение конфигурации, вы можете использовать следующую команду:

bin/magento config:set <path> <value> [--scope=<scope>] [--scope-code=<scope_code>]

Вот пример установки значения конфигурации «base_url»:

bin/magento config:set web/unsecure/base_url "https://example.com/"

Метод 2: использование API конфигурации Magento
Magento предоставляет API конфигурации, который позволяет программно управлять значениями конфигурации. Вот пример того, как установить значение конфигурации с помощью Configuration API:

<?php
use Magento\Framework\App\Config\Storage\WriterInterface;
class ConfigSetter
{
    private $configWriter;
    public function __construct(WriterInterface $configWriter)
    {
        $this->configWriter = $configWriter;
    }
    public function setConfigValue($path, $value)
    {
        $this->configWriter->save($path, $value);
    }
}
// Usage example
$configSetter = new ConfigSetter($configWriter);
$configSetter->setConfigValue('web/unsecure/base_url', 'https://example.com/');

Метод 3. Непосредственное изменение файлов конфигурации.
Другой подход заключается в непосредственном изменении файлов конфигурации. Magento 2 хранит значения конфигурации в файлах XML, расположенных в каталоге app/etcвашей установки. Вы можете редактировать эти файлы программно, чтобы установить значения конфигурации. Вот пример:

<?php
use Magento\Framework\App\Config\Storage\WriterInterface;
use Magento\Framework\App\Filesystem\DirectoryList;
class ConfigFileModifier
{
    private $configWriter;
    private $directoryList;
    public function __construct(WriterInterface $configWriter, DirectoryList $directoryList)
    {
        $this->configWriter = $configWriter;
        $this->directoryList = $directoryList;
    }
    public function setConfigValue($path, $value)
    {
        $etcPath = $this->directoryList->getPath('etc');
        $configFilePath = $etcPath . '/config.xml';
        // Load the XML file
        $xml = simplexml_load_file($configFilePath);
        // Modify the configuration value
        $xml->xpath($path)[0] = $value;
        // Save the modified XML file
        $xml->asXML($configFilePath);
    }
}
// Usage example
$configFileModifier = new ConfigFileModifier($configWriter, $directoryList);
$configFileModifier->setConfigValue('/default/web/unsecure/base_url', 'https://example.com/');

Установка значений конфигурации через CLI — важный аспект управления магазином Magento 2. В этой статье мы рассмотрели три различных метода: использование команды bin/magento, использование API конфигурации Magento и непосредственное изменение файлов конфигурации. Каждый метод обеспечивает гибкость в зависимости от ваших конкретных требований. Используя эти методы, вы можете легко настроить свой магазин Magento 2 из командной строки.

Не забудьте сделать резервную копию файлов конфигурации перед внесением каких-либо изменений и тщательно протестируйте изменения, чтобы убедиться, что они работают должным образом.