navindex / simple-config
Simple library to create and modify a configuration structure.
Installs: 1 621
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: ^8.1
Requires (Dev)
- php-coveralls/php-coveralls: ^2.5
- phpstan/phpstan: ^1.8.0
- phpunit/phpunit: ^9.5.16
- symfony/var-dumper: ^6.0
Replaces
- navindex/simple-config: v1.0.0
This package is auto-updated.
Last update: 2025-07-31 09:42:58 UTC
README
1. What Is It
Simple config is a class to work with configuration settings. It helps you to perform actions like add, remove, check, append, subtract etc. by using dot notation keys.
2. What Is It Not
This library does not read the filesystem or other environment settings. To use an .env file to feed Simple config, use it together with phpdotenv or other similar library.
3. Installation
This package can be installed through Composer.
composer require balinomad/simple-config
4. Usage
The Config
object is immutable. This means methods like with
, without
, append
, and merge
do not change the original object; they return a new, modified Config
instance.
use BaliNomad\SimpleConfig\Config; $options = [ 'allowed_pets' => ['dog', 'cat', 'spider'], 'cat' => [ 'name' => 'Mia', 'food' => ['tuna', 'chicken', 'lamb'], ], 'dog' => [ 'name' => 'Bless', 'color' => [ 'body' => 'white', 'tail' => 'black', ] ], 'has_spider' => true ]; $config = new Config($options); // with(), without(), etc. return a NEW Config instance. $newConfig = $config ->with('has_spider', false) // Set a value ->without('dog.color.tail') // Remove a value ->append('cat.food', 'salmon') // Add an item to an array ->subtract('allowed_pets', 'spider'); // Remove an item from an array // Get values using dot notation $catFood = $newConfig->get('cat.food'); // Returns: ['tuna', 'chicken', 'lamb', 'salmon'] // Check if a key exists $hasTailColor = $newConfig->has('dog.color.tail'); // Returns: false // The original $config object remains unchanged $originalSpiderSetting = $config->get('has_spider'); // Returns: true // Get the entire configuration as an array $arrConfig = $newConfig->toArray();
5. API Reference
Method | Attributes | Returns | Description |
---|---|---|---|
constructor | ?array $config , int $cleaningFlags |
self |
Creates a new Config instance. |
with |
$key , $value |
self |
Returns a new instance with a value set. |
without |
$key |
self |
Returns a new instance with a key removed. |
get |
$key , $default |
mixed |
Retrieves a value using dot notation. |
has |
$key |
bool |
Checks if a key exists. |
append |
$key , $value |
self |
Returns a new instance with a value appended to an array. |
subtract |
$key , $value |
self |
Returns a new instance with a value removed from an array. |
merge |
$config , $method |
self |
Returns a new instance merged with another configuration. |
split |
$key |
self |
Returns a new instance containing only a subset of the config. |
toArray |
- | array |
Returns the entire configuration as an array. |
count |
- | int |
Counts all leaf configuration values. Non-associative arrays are counted as a single leaf. |
getIterator |
- | Traversable |
Gets an iterator for the top-level items. |
offsetExists |
$offset |
bool |
Implements ArrayAccess . Checks if a key exists (e.g., isset($config['app.key']) ). |
offsetGet |
$offset |
mixed |
Implements ArrayAccess . Gets a value (e.g., $config['app.key'] ). |
Note: Modifying a Config
object via array access (e.g., $config['key'] = 'value'
) is not permitted and will throw a LogicException
. Use the with()
and without()
methods instead.