Download the PHP package kaiseki/config without Composer
On this page you can find all versions of the php package kaiseki/config. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download kaiseki/config
More information about kaiseki/config
Files in kaiseki/config
Package config
Short Description Type-safe access to array configurations
License MIT
Homepage https://github.com/kaisekidev/kaiseki-config
Informations about the package config
kaiseki/config
Type-safe access to array configurations, with dot-notation paths.
Wrap a config array (or pull one from a PSR-11 container) and read values with typed accessors that
throw on a missing key or a wrong type — so a typo or a misconfigured value fails loudly instead of
silently returning null.
Installation
Requires PHP 8.2 or newer.
Usage
Paths are dot-separated. Typed getters (string(), int(), float(), bool(), array()) throw
UnknownKeyException if the path is missing and InvalidValueException if the value is not of the
expected type.
Defaults and nullables
Typed lists
stringList(), intList(), and floatList() read the array at a key and narrow it to a
list<string> / list<int> / list<float>, dropping any element of the wrong type and
re-indexing the result:
They behave like array() for the key itself: a missing key throws UnknownKeyException and a
non-array value throws InvalidValueException, unless a default list is supplied:
String-keyed maps
stringKeyedArray() narrows the array at a key to an array<string, mixed>, dropping any
integer-keyed elements while keeping the string keys — handy for reading an options map where a
stray list entry would otherwise leak in:
It follows the same missing-key / wrong-type rules as array().
From a PSR-11 container
Config::fromContainer() reads the config entry from a container:
Config::initClassMap() resolves a map of keys to class instances from the container:
Development
License
MIT — see LICENSE.
All versions of config with dependencies
psr/container Version ^1.1 || ^2.0
thecodingmachine/safe Version ^1.3 || ^2.0