Auto create .env files
This commit is contained in:
@@ -60,3 +60,9 @@ ESCAPE="String \" inside \" other "
|
|||||||
DOUBLE="I will be used"
|
DOUBLE="I will be used"
|
||||||
DOUBLE="This will be ignored"
|
DOUBLE="This will be ignored"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
Unit tests have to be run from base folder with
|
||||||
|
|
||||||
|
`vendor/bin/phpunit test/phpUnitTests/`
|
||||||
|
|||||||
0
test/env/.gitignore
vendored
Normal file
0
test/env/.gitignore
vendored
Normal file
@@ -13,6 +13,32 @@ use PHPUnit\Framework\TestCase;
|
|||||||
*/
|
*/
|
||||||
final class DotEnvTest extends TestCase
|
final class DotEnvTest extends TestCase
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* setup the .env files before test run
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function setUp(): void
|
||||||
|
{
|
||||||
|
// create .env files
|
||||||
|
$file_content = __DIR__ . DIRECTORY_SEPARATOR
|
||||||
|
. 'dotenv' . DIRECTORY_SEPARATOR
|
||||||
|
. 'test.env';
|
||||||
|
$env_files = [
|
||||||
|
__DIR__ . DIRECTORY_SEPARATOR
|
||||||
|
. 'dotenv' . DIRECTORY_SEPARATOR
|
||||||
|
. '.env',
|
||||||
|
__DIR__ . DIRECTORY_SEPARATOR
|
||||||
|
. '.env',
|
||||||
|
];
|
||||||
|
// if not found, skip -> all will fail
|
||||||
|
if (is_file($file_content)) {
|
||||||
|
foreach ($env_files as $env_file) {
|
||||||
|
copy($file_content, $env_file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Undocumented function
|
* Undocumented function
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
test.env
|
|
||||||
49
test/phpUnitTests/dotenv/.env
Normal file
49
test/phpUnitTests/dotenv/.env
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# enviroment file
|
||||||
|
SOMETHING=A
|
||||||
|
OTHER="B IS B"
|
||||||
|
Complex="A B \"D is F"
|
||||||
|
# COMMENT
|
||||||
|
HAS_SPACE= "ABC";
|
||||||
|
# COMMENT AT END
|
||||||
|
HAS_COMMENT_QUOTES_SPACE="Comment at end with quotes and space" # Comment QE
|
||||||
|
HAS_COMMENT_QUOTES_NO_SPACE="Comment at end with quotes no space"# Comment QES
|
||||||
|
HAS_COMMENT_NO_QUOTES_SPACE=Comment at end no quotes and space # Comment NQE
|
||||||
|
HAS_COMMENT_NO_QUOTES_NO_SPACE=Comment at end no quotes no space# Comment NQES
|
||||||
|
COMMENT_IN_TEXT_QUOTES="Foo bar # comment in here"
|
||||||
|
FAILURE = ABC
|
||||||
|
SIMPLEBOX= A B C
|
||||||
|
TITLE=1
|
||||||
|
FOO=1.2
|
||||||
|
SOME.TEST=Test Var
|
||||||
|
SOME.LIVE=Live Var
|
||||||
|
# VAR TESTS -
|
||||||
|
A_TEST1 = foo
|
||||||
|
A_TEST2 = ${TEST1:-bar} # TEST1 is set so the value of TEST2 = foo
|
||||||
|
A_TEST3 = ${TEST4:-bar} # TEST4 is not set so the value of TEST3 = bar
|
||||||
|
A_TEST5 = null
|
||||||
|
A_TEST6 = ${TEST5-bar} # TEST5 is set but empty so the value of TEST6 = null
|
||||||
|
A_TEST7 = ${TEST6:-bar} # TEST5 is set and empty so the value of TEST7 = bar
|
||||||
|
# VAR TESTS =
|
||||||
|
B_TEST1 = foo
|
||||||
|
B_TEST2 = ${TEST1:=bar} # TEST1 is set so the value of TEST2 = foo
|
||||||
|
B_TEST3 = ${TEST4:=bar} # TEST4 is not set so the value of TEST3 = bar and TEST4 = bar
|
||||||
|
B_TEST5 = null
|
||||||
|
B_TEST6 = ${TEST5=bar} # TEST5 is set but emtpy so the value of TEST6 = null
|
||||||
|
B_TEST7 = ${TEST6=bar} # TEST5 is set and empty so the value of TEST7 = bar and TEST5 = bar
|
||||||
|
# VAR TEST END
|
||||||
|
Test="A"
|
||||||
|
TEST="B"
|
||||||
|
TEST="D"
|
||||||
|
LINE="ABC
|
||||||
|
DEF"
|
||||||
|
OTHERLINE="ABC
|
||||||
|
AF\"ASFASDF
|
||||||
|
MORESHIT"
|
||||||
|
SUPERLINE=
|
||||||
|
"asfasfasf"
|
||||||
|
__FOO_BAR_1 = b
|
||||||
|
__FOOFOO = f
|
||||||
|
123123=number
|
||||||
|
EMPTY=
|
||||||
|
= flase
|
||||||
|
asfasdf
|
||||||
@@ -6,10 +6,27 @@ $loader = require '../vendor/autoload.php';
|
|||||||
$loader->addPsr4('gullevek\\', __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'src');
|
$loader->addPsr4('gullevek\\', __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'src');
|
||||||
use gullevek\dotEnv\DotEnv;
|
use gullevek\dotEnv\DotEnv;
|
||||||
|
|
||||||
print "BASE: " . __DIR__ . "<br>";
|
// copy test file to .env file in env folder
|
||||||
print "ORIG: <pre>" . file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . '.env') . "</pre>";
|
$file_content = __DIR__ . DIRECTORY_SEPARATOR
|
||||||
|
. 'phpUnitTests' . DIRECTORY_SEPARATOR
|
||||||
|
. 'dotenv' . DIRECTORY_SEPARATOR
|
||||||
|
. 'test.env';
|
||||||
|
// env folder
|
||||||
|
$env_file = __DIR__ . DIRECTORY_SEPARATOR
|
||||||
|
. 'env' . DIRECTORY_SEPARATOR
|
||||||
|
. '.env';
|
||||||
|
if (!is_file($file_content)) {
|
||||||
|
die("Cannot read $file_content");
|
||||||
|
}
|
||||||
|
if (copy($file_content, $env_file) === false) {
|
||||||
|
die("Cannot copy $file_content to $env_file");
|
||||||
|
}
|
||||||
|
|
||||||
$status = DotEnv::readEnvFile(__DIR__);
|
print "BASE: " . __DIR__ . "<br>";
|
||||||
|
print "ENV: " . $env_file . "<br>";
|
||||||
|
print "ORIG: <pre>" . file_get_contents($env_file) . "</pre>";
|
||||||
|
|
||||||
|
$status = DotEnv::readEnvFile(__DIR__ . DIRECTORY_SEPARATOR . 'env');
|
||||||
|
|
||||||
print "STATUS: " . (string)$status . "<br>";
|
print "STATUS: " . (string)$status . "<br>";
|
||||||
print "ENV: <pre>" . print_r($_ENV, true) . "</pre><br>";
|
print "ENV: <pre>" . print_r($_ENV, true) . "</pre><br>";
|
||||||
|
|||||||
Reference in New Issue
Block a user