search hotlink icon profile hotlink icon
Re Public | 1.1.x - 1.x.x

On This Page

Reflex configuration consists of up to two layers organized in a top-down hierarchy, where higher layers overlay and modify lower layers when their content intersects. If a configuration key is set to null, Reflex removes the corresponding entry. Otherwise, the value overrides any previous value or creates a new entry if none exists:

                [
    "<existing-runner-id>" => null, // reset
    "<new-runner-id>" => "<any>", // set
    "<other-existing-runner-id>" => [ // override
        "<existing-key>" => null, // reset
        "<other-existing-key>" => "<any>", // override
        "<new-key>" => "<any>" // set
    ]
]
            

Note

To keep configurations simple, merging is limited to two levels. Deeper nested arrays are not merged and will fully replace the previous value.

Runtime Arguments Layer

The runtime layer overlays the persisted layer and is built from arguments passed to Reflex at execution time. The CLI parser reads arguments as key–value pairs joined by = and separated by whitespace. To target nested configuration keys, use . as a separator:

  • <key0>=<value0>: Top-level config value
  • <key1>.<key2>=<value1>: Nested config value

Parsed config schema:

                [
    "<key0>" => "<value0>",
    "<key1>" => [
        "<key2>" => "<value1>"
    ]
]
            

Persisted Files Layer

The persisted layer includes configuration that Reflex loads through the virtual configuration path (mapped extension). In most cases, this is a single file, as shown in the example installation, which returns a config array. If you map a directory containing multiple files, Reflex loads them in ascending alphabetical order and merges them into a single configuration by key, for example:

  • configs/reflex: Mapped directory
    • development.php: Loaded first
    • local.php: Overlays first