equidna/env-builder

CLI and PHAR tool to merge .env fragments and optionally deploy compiled .env files.

Maintainers

Package info

github.com/EquidnaMX/env-builder

pkg:composer/equidna/env-builder

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.1 2026-03-03 19:57 UTC

This package is auto-updated.

Last update: 2026-03-03 20:45:41 UTC


README

CLI en PHP 8.2+ para compilar múltiples fragmentos de entorno desde ./.env.d en un único .env, con soporte de overlays *.env.dev, trazabilidad por bloque y despliegue remoto vía scp/rsync.

Estructura recomendada

.
├─ .env.d/
│  ├─ app.env
│  ├─ app.env.dev
│  └─ database.env
├─ bin/
│  └─ env-builder
├─ src/
│  ├─ Console/
│  ├─ Deploy/
│  ├─ Env/
│  ├─ Exception/
│  ├─ Laravel/
│  └─ Service/
├─ build.php
└─ composer.json

Instalación como paquete Composer (Laravel u otros proyectos PHP)

composer require equidna/env-builder

Comando binario:

vendor/bin/env-builder build --dev

En Laravel (opcional), también queda disponible como Artisan:

php artisan env-builder:build --dev

Uso CLI

Compilar .env.d -> .env:

php bin/env-builder build

Compilar incluyendo overlays *.env.dev:

php bin/env-builder build --dev

Salida personalizada:

php bin/env-builder build --source=.env.d --output=.env.production

Compilar y desplegar por SSH:

php bin/env-builder build --dev --deploy="usuario@ip:/ruta/destino/.env"

Prueba E2E reproducible (--dev + prioridad de app.env/app.env.dev):

composer test:e2e

O ejecutando el binario directamente:

php bin/env-builder-e2e-test

El binario de prueba escribe su fixture en un directorio temporal del sistema (%TEMP%/env-builder-e2e en Windows).

Formato de salida compilada

El .env generado incluye trazabilidad por bloque:

### [app.env] ###
APP_NAME=MyApp

### [app.env.dev] ###
APP_DEBUG=true

Si una variable se redefine en un archivo posterior (incluyendo .env.dev), la última definición reemplaza la anterior y en el archivo compilado solo queda una entrada por clave.

Además, cuando existen, app.env y app.env.dev se procesan primero para que el archivo compilado comience con esos bloques.

Build de PHAR (distribución universal)

  1. Instalar dependencias:
composer install --no-dev --optimize-autoloader
  1. Compilar PHAR:
composer build:phar
  1. Ejecutar el binario autónomo:
./dist/env-builder.phar build --dev

En Windows:

php .\dist\env-builder.phar build --dev