Service CleanProcess hinzugefügt: Umgebung für Docker- und Symfony-Variablen bereinigt

This commit is contained in:
2026-03-27 14:25:58 +01:00
parent 90d61cdfb8
commit 7ec38a6e98

View File

@@ -0,0 +1,46 @@
<?php
/*
* CleanProcess.php 2026-03-27 thomas
*
* Copyright (c) 2026 Thomas Schneider <thomas@inter-mundos.de>
* Alle Rechte vorbehalten.
*/
namespace App\Service\Process;
use Symfony\Component\Process\Process;
class CleanProcess extends Process
{
public function start(?callable $callback = null, array $env = []): void
{
// von docker compose gesetzte Umgebungsvariablen zurücksetzen
$this->parseEnvVars('DOCKER_DOTENV_VARS', $env);
// Symfony dotenv-Variablen für den Prozess zurücksetzen
$this->parseEnvVars('SYMFONY_DOTENV_VARS', $env);
parent::start($callback, $env);
}
private function parseEnvVars(string $keySelector, array &$env): void
{
$preservedKeys = [];
if(empty(getenv($keySelector)))
{
return;
}
// prepare DDEV-Environments
if(getenv('IS_DDEV_PROJECT'))
{
$preservedKeys += ['SSH_AUTH_SOCK'];
}
$vars = array_fill_keys(explode(',', getenv($keySelector)), false);
$env = [...array_diff_key($vars, array_flip($preservedKeys)), ...$env];
}
}