This is an old revision of the document!
This page intended to give overview and clarify details of customizations for various parts of modules’ configuration.
To achieve maximum flexibility of configuration without need for manual editing of configuration files, Magento utilizes a concept of merging the configuration from multiple XML files into one global cached configuration repository.
As an example, let’s see how 2 simple source xml files merge into one:
<?xml version="1.0"?>
<config>
<node1>
<node1_1>Data1</node1_1>
</node1>
<node2>Data2</node2>
</config>
<?xml version="1.0"?>
<config>
<node1>
<node1_2>Data3</node1_2>
</node1>
<node2>Data4</node2>
<node3>Data5</node3>
</config>
<?xml version="1.0"?>
<config>
<node1>
<node1_1>Data1</node1_1>
<node1_2>Data3</node1_2>
</node1>
<node2>Data4</node2>
<node3>Data5</node3>
</config>
As you can see the merged XML structure consists of source file 1 contents, appended or overwritten (see node2, Data4) by source file 2.
Refer to: app/code/core/Mage/Core/Model/Config.php, method init()
Merge all files from app/etc/modules/ (app/etc/modules.xml until 0.6.14100).
Files containing modules declarations are dropped here by the core, community and custom packages installed, and are named by package name (Mage_All.xml).