Skip to content

Keeping your .env.example is up to date

License

Notifications You must be signed in to change notification settings

TheDragonCode/env-sync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Environment Synchronization

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.