回答:
から直接値を読み取ることはできませんetc/config.xml
。
つまり、できますが、stores-> configurationセクションから値が上書きされて値がconfig.xml
役に立たなくなるため、そこから直接読み取る意味はありません。
代わりに、マージされたグローバル構成から読み取ることができますconfig.xml
。構成セクションで値が上書きされていない場合は、から値を取得します。
そして、次のように構成値を読み取る必要があるクラスに依存関係を追加することでそれを行うことができます:
ネームスペースYour \ Namespace \ Here;
class YourClassName
{
protected $scopeConfig;
public function __construct(
....
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
....
) {
....
$this->scopeConfig = $scopeConfig;
....
}
}
次に、このような設定値を読み取ることができます
$path = 'path/to/value';
$value = $this->scopeConfig->getValue($path, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
または、それがyes / noフラグであり、true/false
値を取得したい場合は、次のように行うことができます。
$flag = $this->scopeConfig->isSetFlag($path, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
$path
スラッシュ(/
)で連結された、ユーザーの値までのすべてのタグを表します(M1と同様)。
それらを定義するにはconfig.xml
、これをファイルに追加する必要があります
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Store:etc/config.xsd">
<default><--! reserved word -->
<section><!-- anything goes here -->
<group><!-- anything goes here -->
<value1>1</value1><!-- anything goes here -->
<value2>some text</value2><!-- anything goes here -->
</group>
</section>
</default>
</config>
上記のコードを使用して、
$value = $this->scopeConfig->getValue('section/group/value1', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
戻ります1
と、
$value = $this->scopeConfig->isSetFlag('section/group/value1', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
戻りtrue
ます。