https://github.com/commonphp/config-json
Enables applications to load and save configurations in JSON format, leveraging the CommonPHP Driver Management system for seamless integration.
https://github.com/commonphp/config-json
commonphp configuration-management json-configuration json-driver open-source php-json
Last synced: 8 months ago
JSON representation
Enables applications to load and save configurations in JSON format, leveraging the CommonPHP Driver Management system for seamless integration.
- Host: GitHub
- URL: https://github.com/commonphp/config-json
- Owner: commonphp
- License: mit
- Created: 2024-02-17T04:55:55.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-18T14:45:13.000Z (almost 2 years ago)
- Last Synced: 2025-01-13T18:24:33.372Z (about 1 year ago)
- Topics: commonphp, configuration-management, json-configuration, json-driver, open-source, php-json
- Language: PHP
- Homepage:
- Size: 4.88 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# JSON Configuration Driver for CommonPHP
This library provides a JSON configuration driver, `JsonConfigurationDriver`, which implements the `ConfigurationDriverContract` from the CommonPHP Configuration Management library. It enables applications to load and save configurations in JSON format, leveraging the CommonPHP Driver Management system for seamless integration.
## Features
- **Load JSON Configurations**: Effortlessly read and decode JSON files into associative arrays.
- **Save Configurations as JSON**: Serialize and save PHP associative arrays back into JSON format files.
- **JSON Validation**: Ensures the integrity of the JSON content during the loading process.
- **Exception Handling**: Comprehensive error and exception handling for common JSON parsing issues.
## Installation
Use Composer to install the Configuration Manager and this driver:
```
composer require comphp/config
composer require comphp/config-json
```
## Usage
First, ensure that your `DriverManager` instance is configured to recognize the JSON driver:
```php
use CommonPHP\Drivers\DriverManager;
use CommonPHP\Configuration\Drivers\JsonConfigurationDriver\JsonConfigurationDriver;
$driverManager = new DriverManager();
$driverManager->enable(JsonConfigurationDriver::class);
```
Then, when using the Configuration Manager to load or save a JSON file, the `JsonConfigurationDriver` will automatically be utilized for `.json` extensions, thanks to the `#[ConfigurationDriverAttribute('json')]` attribute.
### Loading a Configuration File
```php
$configManager->loadDriver(JsonConfigurationDriver::class);
$config = $configManager->get('path/to/configuration.json');
```
### Saving a Configuration File
Ensure the driver has been loaded as shown above, then:
```php
$config->data['newKey'] = 'newValue';
$config->save(); // Saves the modifications back to 'path/to/configuration.json'
```
## Exception Handling
- **JsonException**: Thrown if the JSON file contains invalid JSON.
- **Exception**: General exceptions for file read/write failures or JSON decoding issues.
This driver provides a simple yet powerful means to work with JSON-based configurations within the CommonPHP framework, ensuring flexibility and ease of use for developers.