8000 properly handle SYMFONY_DOTENV_VARS being the empty string · symfony/symfony@308e3a3 · GitHub
[go: up one dir, main page]

Skip to content

Commit 308e3a3

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

File tree

2 files changed

+30
-1
lines changed

2 files changed

+30
-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: 23 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,27 @@ public function testErrorOnUninitializedDotenv()
3436
$this->assertStringContainsString('[ERROR] Dotenv component is not initialized', $output);
3537
}
3638

39+
public function testEmptyDotEnvVarsList()
40+
{
41+
$_SERVER['SYMFONY_DOTENV_VARS'] = '';
42+
43+
$command = new DebugCommand('dev', __DIR__.'/Fixtures/Scenario1');
44+
$command->setHelperSet(new HelperSet([new FormatterHelper()]));
45+
$tester = new CommandTester($command);
46+
$tester->execute([]);
47+
$output = $tester->getDisplay();
48+
49+
$expectedFormat = <<<'OUTPUT'
50+
%a
51+
---------- ------- ------------ ------%S
52+
Variable Value .env.local .env%S
53+
---------- ------- ------------ ------%S
54+
%a
55+
OUTPUT;
56+
57+
$this->assertStringMatchesFormat($expectedFormat, $output);
58+
}
59+
3760
public function testScenario1InDevEnv()
3861
{
3962
$output = $this->executeCommand(__DIR__.'/Fixtures/Scenario1', 'dev');

0 commit comments

Comments
 (0)
0