bug #32980 [Dotenv] support setting default env var values (xabbuh)
This PR was merged into the 4.4 branch.
Discussion
----------
[Dotenv] support setting default env var values
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #31530
| License | MIT
| Doc PR |
Commits
-------
2dd41e7f24
[Dotenv] support setting default env var values
This commit is contained in:
commit
02c571d9d3
@ -432,7 +432,7 @@ final class Dotenv
|
||||
(?!\() # no opening parenthesis
|
||||
(?P<opening_brace>\{)? # optional brace
|
||||
(?P<name>'.self::VARNAME_REGEX.')? # var name
|
||||
(?P<default_value>:-[^\}]++)? # optional default value
|
||||
(?P<default_value>:[-=][^\}]++)? # optional default value
|
||||
(?P<closing_brace>\})? # optional closing brace
|
||||
/x';
|
||||
|
||||
@ -469,6 +469,10 @@ final class Dotenv
|
||||
}
|
||||
|
||||
$value = substr($matches['default_value'], 2);
|
||||
|
||||
if ('=' === $matches['default_value'][1]) {
|
||||
$this->values[$name] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$matches['opening_brace'] && isset($matches['closing_brace'])) {
|
||||
|
@ -166,6 +166,10 @@ class DotenvTest extends TestCase
|
||||
["FOO=BAR\nBAR=\${NOTDEFINED:-TEST}", ['FOO' => 'BAR', 'BAR' => 'TEST']],
|
||||
["FOO=\nBAR=\${FOO:-TEST}", ['FOO' => '', 'BAR' => 'TEST']],
|
||||
["FOO=\nBAR=\$FOO:-TEST}", ['FOO' => '', 'BAR' => 'TEST}']],
|
||||
["FOO=BAR\nBAR=\${FOO:=TEST}", ['FOO' => 'BAR', 'BAR' => 'BAR']],
|
||||
["FOO=BAR\nBAR=\${NOTDEFINED:=TEST}", ['FOO' => 'BAR', 'NOTDEFINED' => 'TEST', 'BAR' => 'TEST']],
|
||||
["FOO=\nBAR=\${FOO:=TEST}", ['FOO' => 'TEST', 'BAR' => 'TEST']],
|
||||
["FOO=\nBAR=\$FOO:=TEST}", ['FOO' => 'TEST', 'BAR' => 'TEST}']],
|
||||
];
|
||||
|
||||
if ('\\' !== \DIRECTORY_SEPARATOR) {
|
||||
|
Reference in New Issue
Block a user