Download the PHP package superruzafa/settings-loader without Composer
On this page you can find all versions of the php package superruzafa/settings-loader. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download superruzafa/settings-loader
More information about superruzafa/settings-loader
Files in superruzafa/settings-loader
Package settings-loader
Short Description A collection of settings loaders
License MIT
Homepage https://github.com/superruzafa/settings-loader
Informations about the package settings-loader
Settings Loader
The settings loader is a library that loads settings from several sources (currently only XML is supported).
XML Loader
This loader loads the settings from an XML file with a given structure:
In essence you can create your own XML settings file following these steps:
- Define in your XML a namespace pointing to
- Use the two reserved tags in that namespace for define settings entries: and
- The namespaceless tags will be used as key-value pairs and will build the settings entries.
vs.
Both and tags define a context (or change the previous one). However, the takes the current context and creates a settings entry in the global settings list.
Summarizing, you should use when you want to define a global context that would be overrided by concrete context using .
Inheritance
Both and nodes inherit the values defined by its ancestors and could be combined for create large collections of settings easily. These tags could be nested:
Elements vs. attributes
An or a node are allowed to define their context using both elements and attributes. These two examples would create the same settings:
You can use the method that better fits your needs.
Arrays
When a key appears twice or more within the same context then the values for that key are interpreted as an array, instead of preserving the last defined value:
When inheriting, the child settings overrides its parent:
Reason: otherwise settings nodes having keys that already are defined by its parent would always append its value to the one from its parent, creating an array.
String interpolation
String values could be considered as templates.
When an string contains something like the parser looks in the current context the value associated to the key "username" and makes a replacement.
You can chain even more complicated interpolations and hierarchies:
Caveats
Non-existing keys are replaced by an empty string, generating a warning.
Cyclic recursive resolution will end with an empty string, generating a warning:
Array interpolations are replaced by and a warning is generated: