Skip to content

Latest commit

 

History

History
66 lines (42 loc) · 1.01 KB

File metadata and controls

66 lines (42 loc) · 1.01 KB

Merge

ConfigMerger combines parsed configuration layers into one array.

Responsibility

  • merge parsed layers in deterministic order
  • preserve recursive behavior for associative arrays
  • replace indexed arrays entirely
  • allow later values to override earlier ones

Inputs

  • one or more parsed arrays

Output

  • one merged array

Behavior

Associative Arrays

Associative arrays merge recursively.

Example:

[
    'service' => ['timeout' => 10, 'options' => ['cache' => true]],
]

merged with:

[
    'service' => ['options' => ['cache' => false]],
]

results in:

[
    'service' => ['timeout' => 10, 'options' => ['cache' => false]],
]

Scalars

Later scalar values override earlier ones.

Indexed Arrays

Indexed arrays are replaced, not appended.

Constraints

  • merge order matters
  • interpolation happens after merge, not during merge

Related Documents