Search by

microweber-packages / microweber-config-merge

boksiora

Package-priority config merging for Laravel – lets package/module config values override application defaults instead of the other way around.

Package info

github.com/microweber-packages/microweber-config-merge

Homepage

pkg:composer/microweber-packages/microweber-config-merge

Statistics

Installs: 74

Dependents: 4

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-11-03 11:38 UTC

This package is auto-updated.

Last update: 2026-11-03 15:25:24 UTC


README

Package-priority config merging for Laravel service providers.

Problem

Laravel's built-in ServiceProvider::mergeConfigFrom() gives the application config priority over package defaults. This means a package cannot ship opinionated defaults that override what the app already has.

This package inverts that behaviour: the package/module config values take priority, letting CMS modules and packages ship defaults that "win" unless the system explicitly overrides them at a deeper level.

Installation

composer require microweber-packages/microweber-config-merge

Usage

use Illuminate\Support\ServiceProvider;
use MicroweberPackages\ConfigMerge\MergesConfigFromPackage;

class MyServiceProvider extends ServiceProvider
{
    use MergesConfigFromPackage;

    public function register()
    {
        // Package config values override application defaults
        $this->mergeConfigFrom(__DIR__.'/../config/my-package.php', 'my-package');
    }
}

How it works

  • Scalar values: Package value wins over the application value.
  • Associative arrays: Recursively merged; package values win at each level.
  • Numeric arrays and special keys (middleware, register): Concatenated via array_merge to preserve list-append semantics.
  • Cached configuration: Skipped entirely (respects CachesConfiguration).

License

MIT