PHPackages                             comphp/config - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. comphp/config

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

comphp/config
=============

Library designed to simplify the management of configuration files in PHP applications. It leverages the power of dynamic driver loading and custom behaviors to provide a highly adaptable solution for application configuration.

v0.2(1y ago)2143MITPHPPHP ^8.4

Since Feb 17Pushed 1y agoCompare

[ Source](https://github.com/commonphp/config)[ Packagist](https://packagist.org/packages/comphp/config)[ RSS](/packages/comphp-config/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (5)Versions (3)Used By (3)

comphp/config
=============

[](#comphpconfig)

Overview
--------

[](#overview)

The `comphp/config` library is designed to simplify the management of configuration files in PHP applications. It leverages dynamic driver loading and custom behaviors to provide a highly adaptable solution for application configuration.

Features
--------

[](#features)

- **Supports Multiple Formats**: JSON and PHP configurations out of the box.
- **Modular &amp; Extensible**: Easily register additional parsers.
- **Dependency Injection Ready**: Works seamlessly with PSR-11 containers.
- **Merge Strategies**: Replace, merge, or ignore existing configuration values.
- **Dot-Notation Access**: Retrieve nested configuration values effortlessly.

Installation
------------

[](#installation)

Install via Composer:

```
composer require comphp/config
```

Usage
-----

[](#usage)

### Initialize ConfigManager

[](#initialize-configmanager)

```
use Neuron\Configuration\ConfigManager;
use DI\ContainerBuilder;

$container = (new ContainerBuilder())->build();
$configManager = new ConfigManager($container);
```

### Load Configuration Files

[](#load-configuration-files)

```
$configManager->load('database', 'config.json');
$configManager->load('app', 'config.php');
```

### Access Configuration Values

[](#access-configuration-values)

```
echo $configManager->get('database.host', 'default_host');
```

### Modify Configuration

[](#modify-configuration)

```
$configManager->set('cache.enabled', true);
$configManager->unset('cache.enabled');
```

### Convert Configuration to Array

[](#convert-configuration-to-array)

```
print_r($configManager->toArray());
```

Supported Formats
-----------------

[](#supported-formats)

By default, `comphp/config` supports:

- JSON (`.json`)
- PHP (`.php` returning an array)

You can register additional parsers using `ParserRegistry`.

Extending with Custom Parsers
-----------------------------

[](#extending-with-custom-parsers)

```
use Neuron\Configuration\Parsers\JsonParser;
use Neuron\Configuration\ParserRegistry;

$parserRegistry = $configManager->parsers;
$parserRegistry->register(YamlParser::class, 'yaml');
$parserRegistry->register(DatabaseParser::class, 'db')
```

Merge Strategies
----------------

[](#merge-strategies)

When loading configurations, you can define how new values are merged:

- `MergeMode::Replace` (default): Overwrites existing values.
- `MergeMode::Merge`: Merges arrays recursively.
- `MergeMode::Ignore`: Keeps existing values untouched.
- `MergeMode::Error`: Throws an exception if a key already exists.

Example:

```
use Neuron\Configuration\MergeMode;
$configManager->load('app', 'config.json', MergeMode::Merge);
```

License
-------

[](#license)

This project is licensed under the MIT License - see the [LICENSE](license.md) file for details.

Contributing
------------

[](#contributing)

See [CONTRIBUTING.md](contributing.md) for guidelines on how to contribute.

Changelog
---------

[](#changelog)

See [CHANGELOG.md](changelog.md) for a history of updates.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance45

Moderate activity, may be stable

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~392 days

Total

2

Last Release

427d ago

PHP version history (2 changes)v0.1PHP ^8.3

v0.2PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/5991e71fdfcd1bc709602e9d809bded7c12649ba25084cc6f715caf45e2e52c1?d=identicon)[tlmcclatchey](/maintainers/tlmcclatchey)

---

Top Contributors

[![kansatech](https://avatars.githubusercontent.com/u/67716964?v=4)](https://github.com/kansatech "kansatech (2 commits)")

---

Tags

commonphpconfigurationconfiguration-filesconfiguration-management

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/comphp-config/health.svg)

```
[![Health](https://phpackages.com/badges/comphp-config/health.svg)](https://phpackages.com/packages/comphp-config)
```

###  Alternatives

[ecotone/ecotone

Supporting you in building DDD, CQRS, Event Sourcing applications with ease.

558549.8k17](/packages/ecotone-ecotone)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[jaxon-php/jaxon-core

Jaxon is an open source PHP library for easily creating Ajax web applications

73142.3k25](/packages/jaxon-php-jaxon-core)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[llm/mcp-server

PHP SDK for building MCP servers

431.1k](/packages/llm-mcp-server)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
