MageStackDay奖励500pts悬赏的奖金问题,并有可能赢得一年的免费Z-Ray许可证。更多信息可以在这里 >>
这些问题是由Magento 2核心开发人员Anton Kril提供/启发的。
题:
我正在创建具有一组单独配置的扩展。
这意味着我无法使用config.xml
或routes.xml
或fieldset.xml
magento拥有的任何其他配置xml文件。
例。
假设我正在定义一个具有行和列的“表”配置。我可以在下面使用此xml。(称之为table.xml
)
<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path/to/table.xsd">
<row id="row1">
<column id="col1" sort="10" attr1="val1">
<label>Col 1</label>
</column>
</row>
<row id="row2">
<column id="col1" sort="10" attr1="val1">
<label>Col 1</label>
</column>
<column id="col2" sort="20" disabled="true" attr1="val2" >
<label>Col 2</label>
</column>
<column id="col3" sort="15" attr1="val1">
<label>Col 3</label>
</column>
</row>
</table>
但是,如果包含其他扩展名,则table.xml
希望配置读取器将其选中,并且应合并2个或更多xml文件。我的意思是如果第二个文件看起来像这样
<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path/to/table.xsd">
<row id="row1">
<column id="col2" sort="10" attr1="val2">
<label>Col 2</label>
</column>
</row>
<row id="row2">
<column id="col1" sort="10" attr1="val5" />
</row>
</table>
结果将是第二列添加到第一行,并且的值attr1
被第二个xml覆盖:
<table ....>
<row id="row1">
<column id="col1" sort="10" attr1="val1"> <!-- from first xml -->
<label>Col 1</label>
</column>
<column id="col2" sort="10" attr1="val2"><!-- from second xml-->
<label>Col 2</label>
</column>
</row>
<row id="row2">
<column id="col1" sort="10" attr1="val5"><!--they apear in both xmls with the same path and id and second one overrides the value for `attr1`-->
<label>Col 1</label>
</column>
<column id="col2" sort="20" disabled="true" attr1="val2"><!-- from first xml -->
<label>Col 2</label>
</column>
<column id="col3" sort="15" attr1="val1"><!-- from first xml -->
<label>Col 3</label>
</column>
</row>
</table>
在Magento 1中,我可以通过调用
$merged = Mage::getConfig()->loadModulesConfiguration('table.xml')
->applyExtends();
Magento 2我该如何做?
Dom
上课示例示例答案。我开始研究利用Reader
课堂的答案。同时,我刷新了问题页面,意识到您做到了:-) +1