ghostwriter / config
Provides an object that maps configuration keys to values.
Maintainers
Details
Fund package maintenance!
ghostwriter
Installs: 1 235 839
Dependents: 9
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 1
Requires
- php: >=8.1 <8.4
Requires (Dev)
- ghostwriter/coding-standard: dev-main
README
Provides an object that maps configuration keys to values.
Installation
You can install the package via composer:
composer require ghostwriter/config
Star ⭐️ this repo if you find it useful
You can also star (🌟) this repo to find it easier later.
Usage
$key = 'nested'; $path = 'path/to/config.php'; $options = [ 'settings' => [ 'enable' => true, ], ]; $config = $configFactory->create($options); $config->toArray(); // ['settings' => ['enable'=>true]] $config = Config::fromPath($path); $config->toArray(); // ['settings' => ['enable'=>true]] $config = Config::fromPath($path, $key); $config->toArray(); // ['nested' => ['settings' => ['enable'=>true]]] $config->has('nested.settings.disabled'); // true // $config = new Config($options); $config->has('settings'); // true $config->has('settings.enable'); // true $config->get('settings.enable'); // true $config = Config::new($options); $config->has('settings.disabled'); // false $config->get('settings.disabled'); // null $config->get('settings.disabled', 'default'); // 'default' $config->set('settings.disabled', false); // true $config->has('settings.disabled'); // true $config->get('settings.disabled'); // false $config->toArray(); // ['settings' => ['enable'=>true,'disabled'=>false]] $config->remove('settings.disabled'); $config->get('settings.disabled'); // null $config->toArray(); // ['settings' => ['enable'=>true]]
API
interface ConfigInterface { public function get(string $key, mixed $default = null): mixed; public function has(string $key): bool; public function remove(string $key): void; public function set(string $key, mixed $value): void; public function toArray(): array; }
Testing
composer test
Changelog
Please see CHANGELOG.md for more information what has changed recently.
Security
If you discover any security related issues, please email nathanael.esayeas@protonmail.com
instead of using the issue tracker.
Support
Credits
License
The BSD-3-Clause. Please see License File for more information.