dragon-code/env-sync

Keeping your .env.example is up-to-date

4.1.0 2024-03-13 07:10 UTC

README

Environment Synchronization

Stable Version Unstable Version Total Downloads Github Workflow Status License

Installation

If you are using the Laravel framework, then install the dragon-code/env-sync-laravel package instead.

To get the latest version of Environment Synchronization, simply require the project using Composer:

$ composer require dragon-code/env-sync --dev

Or manually update require-dev block of composer.json and run composer update.

{
    "require-dev": {
        "dragon-code/env-sync": "^4.0"
    }
}

How to use

This package scans files with *.php, *.json, *.yml, *.yaml and *.twig extensions in the specified folder, receiving from them calls to the env and getenv functions. Based on the received values, the package creates a key-value array. When saving, the keys are split into blocks by the first word before the _ character.

Also, all keys are sorted alphabetically.

Frameworks

Native using

To call a command in your application, you need to do the following:

use DragonCode\EnvSync\Services\Syncer;

protected function syncer(): Syncer
{
    return Syncer::make();
}

protected function sync()
{
    $this->syncer()
       ->path(__DIR__)
       ->filename('.env.example')
       ->store();
}

If you want to define default values or specify which key values should be stored, you need to pass an array to the constructor of the Config class:

use DragonCode\EnvSync\Services\Syncer;

protected function syncer(): Syncer
{
    return Syncer::make($this->config());
}

protected function config(): array
{
    return require realpath(__DIR__ . '/your-path/your-config.php');
}

You can also suggest your implementation by sending a PR. We will be glad 😊

License

This package is licensed under the MIT License.