https://github.com/thedragoncode/env-sync
Keeping your .env.example is up to date
https://github.com/thedragoncode/env-sync
Last synced: 11 months ago
JSON representation
Keeping your .env.example is up to date
- Host: GitHub
- URL: https://github.com/thedragoncode/env-sync
- Owner: TheDragonCode
- License: mit
- Archived: true
- Created: 2021-01-26T14:32:11.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-20T08:26:55.000Z (11 months ago)
- Last Synced: 2025-02-26T23:09:59.242Z (11 months ago)
- Language: PHP
- Homepage:
- Size: 318 KB
- Stars: 36
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Environment Synchronization

[![Stable Version][badge_stable]][link_packagist]
[![Unstable Version][badge_unstable]][link_packagist]
[![Total Downloads][badge_downloads]][link_packagist]
[![Github Workflow Status][badge_build]][link_build]
[![License][badge_license]][link_license]
> [!TIP]
> Use [msamgan/laravel-env-keys-checker](https://github.com/msamgan/laravel-env-keys-checker) instead.
## Installation
> If you are using the Laravel framework, then install the [dragon-code/env-sync-laravel](https://github.com/TheDragonCode/env-sync-laravel) package instead.
To get the latest version of `Environment Synchronization`, simply require the project using [Composer](https://getcomposer.org):
```bash
$ composer require dragon-code/env-sync --dev
```
Or manually update `require-dev` block of `composer.json` and run `composer update`.
```json
{
"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
* Laravel / Lumen Frameworks - See the documentation in [this repository](https://github.com/TheDragonCode/env-sync-laravel).
### Native using
To call a command in your application, you need to do the following:
```php
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:
```php
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](LICENSE).
[badge_build]: https://img.shields.io/github/actions/workflow/status/TheDragonCode/env-sync/symfony-6.yml?style=flat-square
[badge_downloads]: https://img.shields.io/packagist/dt/dragon-code/env-sync.svg?style=flat-square
[badge_license]: https://img.shields.io/packagist/l/dragon-code/env-sync.svg?style=flat-square
[badge_stable]: https://img.shields.io/github/v/release/TheDragonCode/env-sync?label=stable&style=flat-square
[badge_unstable]: https://img.shields.io/badge/unstable-dev--main-orange?style=flat-square
[link_build]: https://github.com/TheDragonCode/env-sync/actions
[link_license]: LICENSE
[link_packagist]: https://packagist.org/packages/dragon-code/env-sync