Como obter um valor de uma configuração em seu módulo Magento
Desenvolvimento, Magento 2
Publicado em 05 de agosto de 2022
Os valores e configurações definidos em Lojas > Configuração, são salvos na tabela core_config_data. Esta tabela armazena os valores de configuração de todos os escopos de configuração. Isto é, dos valores configurados a nível global, de website ou a nível de visão de loja.
+---------+-------+--------+--------------------------------------------+--------------------------------------------------------------------------------------------------------+-------------------+ |config_id|scope |scope_id|path |value |updated_at | +---------+-------+--------+--------------------------------------------+--------------------------------------------------------------------------------------------------------+-------------------+ |1 |default|0 |yotpo/module_info/yotpo_installation_date |2020-07-29 |2020-07-29 06:11:01| |2 |default|0 |yotpo/sync_settings/orders_sync_start_date |2055-07-01 |2020-08-11 06:39:05| |3 |default|0 |currency/options/base |BRL |2020-07-29 06:11:02| |4 |default|0 |currency/options/default |BRL |2020-07-29 06:11:02| |5 |default|0 |currency/options/allow |USD,EUR,BRL |2021-06-23 22:10:10| |6 |default|0 |general/region/display_all |1 |2020-07-29 06:11:03| |7 |default|0 |general/region/state_required |AL,AR,AU,BG,BO,BR,BY,CA,CH,CL,CN,CO,DK,EC,EE,ES,GR,GY,HR,IN,IS,IT,LT,LV,MX,PE,PL,PT,PY,RO,SE,SR,US,UY,VE|2022-08-01 01:12:44| |8 |default|0 |catalog/category/root_id |2 |2020-07-29 06:11:05| |9 |default|0 |analytics/subscription/enabled |0 |2020-08-07 04:05:29| |12 |default|0 |msp_securitysuite_recaptcha/frontend/enabled|0 |2020-07-29 06:11:06| +---------+-------+--------+--------------------------------------------+--------------------------------------------------------------------------------------------------------+-------------------+
Mas como podemos obter um valor específico de uma destas configurações?
Dentro de um módulo
Para obter um valor de configuração dentro de um módulo, você deve:
- Injetar a classe
\Magento\Framework\App\Config\ScopeConfigInterfaceem seu construtor (__construct) - Chamar o método
getValue($path, $scopeType = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeCode = null)
$path – Corresponde ao caminho da configuração, como guardado na tabela core_config_data e exibido acima
$scope – Trata-se do escopo de configuração, e ele pode ser uma das constantes definidas em \Magento\Store\Model\ScopeInterface. Isto é: SCOPE_STORE, SCOPE_GROUP, ou SCOPE_WEBSITE.
Exemplo
<?php
declare(strict_types=1);
#namespace ...
use Magento\Framework\App\Config\ScopeConfigInterface;
class MagenteiroExemplo
{
const XML_PATH_ENABLED = 'mautic/general/enabled';
/**
* @var \Magento\Framework\App\Config\ScopeConfigInterface
*/
protected \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig;
/**
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
*/
public function __construct(\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig) {
$this->scopeConfig = $scopeConfig;
}
/**
* @return bool
*/
public function isEnabled()
{
return (bool)$this->scopeConfig->getValue(self::XML_PATH_ENABLED);
}
}
No terminal
Se você quer apenas obter um valor de config no terminal, basta usar o comando bin/magento config:show.
Por exemplo: bin/magento config:show web/secure/base_url
Você pode também especificar o --scope e/ou --scope-code como mostra o --help do mesmo comando:
$ bin/magento config:show --help
Description:
Shows configuration value for given path. If path is not specified, all saved values will be shown
Usage:
config:show [options] [--] [<path>]
Arguments:
path Configuration path, for example section_id/group_id/field_id
Options:
--scope[=SCOPE] Scope for configuration, if not specified, then 'default' scope will be used [default: "default"]
--scope-code[=SCOPE-CODE] Scope code (required only if scope is not `default`) [default: ""]
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Valores podem ser sobrescritos
Note que valores de configuração podem ser sobrescritos por variáveis de ambiente. Sendo assim, é possível que o valor exibido com o comando ou dentro de seu módulo, possua valores diferentes dependendo das configurações do seu servidor.
Mas fique tranquilo(a). Isso é útil em situações específicas e normalmente não é utilizado de forma ampla e para alterar valores massivamente.
Note também que os arquivos app/etc/env.php e app/etc/config.php também podem definir valores de configuração. E adivinha? Eles também podem sobrescrever valores de configuração definidos na tabela core_config_data.
Mas isso é assunto para outro artigo ou para o Magento 2: O Curso.
Alterou? Limpe os caches.
Valores de configuração são salvos em cache, e configurações que afetam a o visual de sua loja também são cacheados.
Sendo assim, ao alterar uma configuração, lembre-se de limpar os caches full_page e config. Isso pode ser feito com bin/magento c:c config full_page.
- Guest checkout bloqueado na API REST do Magento 2? Confira isso. - 7 de julho de 2026
- Você precisa testar esta plataforma de e-commerce - 9 de fevereiro de 2026
- A hora de montar o seu OnlyFans chegou! Veja 8 ideias pra começar o seu. - 4 de dezembro de 2024
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/como-obter-um-valor-de-uma-configuracao-em-seu-modulo-magento/"]