Jawaban:
Anda tidak dapat membaca nilai langsung dari etc/config.xml
.
Maksud saya, Anda bisa, tetapi tidak ada gunanya membaca langsung dari sana karena nilai dapat ditimpa dari bagian konfigurasi store-> yang membuat nilai dari config.xml
tidak berguna.
Sebagai gantinya, Anda dapat membaca dari konfigurasi gabungan global dan jika nilainya tidak ditimpa di bagian konfigurasi Anda mendapatkan nilainya config.xml
.
Dan Anda bisa melakukannya dengan menambahkan dependensi ke kelas Anda yang perlu membaca nilai konfigurasi seperti ini:
namespace Your \ Namespace \ Here;
class YourClassName
{
protected $scopeConfig;
public function __construct(
....
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
....
) {
....
$this->scopeConfig = $scopeConfig;
....
}
}
Maka Anda dapat membaca nilai konfigurasi seperti ini
$path = 'path/to/value';
$value = $this->scopeConfig->getValue($path, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
Atau, jika itu adalah tanda ya / tidak dan Anda ingin mendapatkan true/false
nilai, Anda dapat melakukannya seperti ini:
$flag = $this->scopeConfig->isSetFlag($path, \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
$path
mewakili semua tag yang diakhiri dengan garis miring ( /
) hingga nilai Anda (mirip dengan M1).
Untuk mendefinisikannya, config.xml
Anda perlu menambahkan ini di file Anda
<?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>
Menggunakan kode di atas,
$value = $this->scopeConfig->getValue('section/group/value1', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
akan kembali 1
dan
$value = $this->scopeConfig->isSetFlag('section/group/value1', \Magento\Store\Model\ScopeInterface::SCOPE_STORE);
akan kembali true
.