Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit dfe7e1b

Browse files
committed
properly handle SYMFONY_DOTENV_VARS being the empty string
1 parent 8d06a8a commit dfe7e1b

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

src/Symfony/Component/Dotenv/Command/DebugCommand.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int
8282

8383
private function getVariables(array $envFiles): array
8484
{
85-
$vars = explode(',', $_SERVER['SYMFONY_DOTENV_VARS'] ?? '');
85+
$dotenvVars = $_SERVER['SYMFONY_DOTENV_VARS'] ?? '';
86+
87+
if ('' === $dotenvVars) {
88+
return [];
89+
}
90+
91+
$vars = explode(',', $dotenvVars);
8692
sort($vars);
8793

8894
$output = [];

src/Symfony/Component/Dotenv/Tests/Command/DebugCommandTest.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ class DebugCommandTest extends TestCase
2525
*/
2626
public function testErrorOnUninitializedDotenv()
2727
{
28+
unset($_SERVER['SYMFONY_DOTENV_VARS']);
29+
2830
$command = new DebugCommand('dev', __DIR__.'/Fixtures/Scenario1');
2931
$command->setHelperSet(new HelperSet([new FormatterHelper()]));
3032
$tester = new CommandTester($command);
@@ -34,6 +36,30 @@ public function testErrorOnUninitializedDotenv()
3436
$this->assertStringContainsString('[ERROR] Dotenv component is not initialized', $output);
3537
}
3638

39+
/**
40+
* @runInSeparateProcess
41+
*/
42+
public function testEmptyDotEnvVarsList()
43+
{
44+
$_SERVER['SYMFONY_DOTENV_VARS'] = '';
45+
46+
$command = new DebugCommand('dev', __DIR__.'/Fixtures/Scenario1');
47+
$command->setHelperSet(new HelperSet([new FormatterHelper()]));
48+
$tester = new CommandTester($command);
49+
$tester->execute([]);
50+
$expectedFormat = <<<'OUTPUT'
51+
%a
52+
---------- ------- ------------ ------%S
53+
Variable Value .env.local .env%S
54+
---------- ------- ------------ ------%S
55+
56+
// Note real values might be different between web and CLI.%S
57+
%a
58+
OUTPUT;
59+
60+
$this->assertStringMatchesFormat($expectedFormat, $tester->getDisplay());
61+
}
62+
3763
public function testScenario1InDevEnv()
3864
{
3965
$output = $this->executeCommand(__DIR__.'/Fixtures/Scenario1', 'dev');

0 commit comments

Comments
 (0)