From 6a3a55e96e0be93981a50d2d2587d641f7c847a5 Mon Sep 17 00:00:00 2001 From: Pavel Karfik Date: Thu, 24 Feb 2022 13:49:46 +0100 Subject: [PATCH 1/5] Add dotenv --- .env.dist | 7 +++++++ .gitignore | 2 ++ composer.json | 3 ++- tests/ReflectorFactory.php | 17 +++++++++-------- tests/default/config/bootstrap.php | 6 ++++++ 5 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 .env.dist diff --git a/.env.dist b/.env.dist new file mode 100644 index 000000000..146ac0a91 --- /dev/null +++ b/.env.dist @@ -0,0 +1,7 @@ +DBA_HOST= +DBA_USER= +DBA_PASSWORD= +DBA_DATABASE=phpstan_dba +DBA_MODE= +DBA_REFLECTOR= +DBA_DSN= diff --git a/.gitignore b/.gitignore index 184b3f18e..140d44e7a 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ composer.lock mysqli.php pdo.php + +.env diff --git a/composer.json b/composer.json index 962c106bc..cd121a084 100644 --- a/composer.json +++ b/composer.json @@ -7,7 +7,8 @@ "ext-mysqli": "*", "composer-runtime-api": "^2.0", "composer/semver": "^3.2", - "phpstan/phpstan": "^1.2" + "phpstan/phpstan": "^1.2", + "vlucas/phpdotenv": "^5.4" }, "require-dev": { "ext-pdo": "*", diff --git a/tests/ReflectorFactory.php b/tests/ReflectorFactory.php index 18c8f890b..936a2a47b 100644 --- a/tests/ReflectorFactory.php +++ b/tests/ReflectorFactory.php @@ -23,18 +23,19 @@ public static function create(string $cacheDir): QueryReflector $user = getenv('DBA_USER') ?: 'root'; $password = getenv('DBA_PASSWORD') ?: 'root'; $dbname = getenv('DBA_DATABASE') ?: 'phpstan_dba'; + $mode = getenv('DBA_MODE') ?: 'recording'; + $reflector = getenv('DBA_REFLECTOR') ?: 'mysqli'; } else { - $host = getenv('DBA_HOST') ?: 'mysql80.ab'; - $user = getenv('DBA_USER') ?: 'testuser'; - $password = getenv('DBA_PASSWORD') ?: 'test'; - $dbname = getenv('DBA_DATABASE') ?: 'phpstan_dba'; + $host = $_ENV['DBA_HOST'] ?: 'mysql80.ab'; + $user = $_ENV['DBA_USER'] ?: null; + $password = $_ENV['DBA_PASSWORD'] ?: null; + $dbname = $_ENV['DBA_DATABASE'] ?: 'phpstan_dba'; + $mode = $_ENV['DBA_MODE'] ?: 'recording'; + $reflector = $_ENV['DBA_REFLECTOR'] ?: 'mysqli'; } - $mode = getenv('DBA_MODE') ?: 'recording'; - $reflector = getenv('DBA_REFLECTOR') ?: 'mysqli'; - // make env vars available to tests, in case non are defined yet - putenv('DBA_REFLECTOR='.$reflector); + $_ENV['DBA_REFLECTOR'] = $reflector; // we need to record the reflection information in both, phpunit and phpstan since we are replaying it in both CI jobs. // in a regular application you will use phpstan-dba only within your phpstan CI job, therefore you only need 1 cache-file. diff --git a/tests/default/config/bootstrap.php b/tests/default/config/bootstrap.php index 5b66d5846..dfa3e2079 100644 --- a/tests/default/config/bootstrap.php +++ b/tests/default/config/bootstrap.php @@ -1,11 +1,17 @@ safeLoad(); +} + $config = RuntimeConfiguration::create(); $config->errorMode(RuntimeConfiguration::ERROR_MODE_EXCEPTION); // $config->debugMode(true); From 14baa443477c0b6d18776d52c717ab67b88a7a9a Mon Sep 17 00:00:00 2001 From: Pavel Karfik Date: Sun, 27 Feb 2022 10:44:10 +0100 Subject: [PATCH 2/5] move dotenv to dev deps --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index cd121a084..bbba1b910 100644 --- a/composer.json +++ b/composer.json @@ -7,8 +7,7 @@ "ext-mysqli": "*", "composer-runtime-api": "^2.0", "composer/semver": "^3.2", - "phpstan/phpstan": "^1.2", - "vlucas/phpdotenv": "^5.4" + "phpstan/phpstan": "^1.2" }, "require-dev": { "ext-pdo": "*", @@ -18,7 +17,8 @@ "phpstan/phpstan-phpunit": "^1.0", "phpstan/phpstan-strict-rules": "^1.1", "phpunit/phpunit": "^9", - "symplify/phpstan-extensions": "^10.0" + "symplify/phpstan-extensions": "^10.0", + "vlucas/phpdotenv": "^5.4" }, "conflicts": { "phpstan/phpstan": "1.4.0" From e61ad0ac6aa2d2acd08e7f6b187d43c7586f955f Mon Sep 17 00:00:00 2001 From: Pavel Karfik Date: Mon, 28 Feb 2022 09:43:13 +0100 Subject: [PATCH 3/5] cleanup --- .env.dist | 11 +++++------ tests/ReflectorFactory.php | 12 ++++++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.env.dist b/.env.dist index 146ac0a91..b0dd4c486 100644 --- a/.env.dist +++ b/.env.dist @@ -1,7 +1,6 @@ -DBA_HOST= -DBA_USER= -DBA_PASSWORD= +DBA_HOST=mysql80.ab +DBA_USER=testuser +DBA_PASSWORD=test DBA_DATABASE=phpstan_dba -DBA_MODE= -DBA_REFLECTOR= -DBA_DSN= +DBA_MODE=recording +DBA_REFLECTOR=mysqli diff --git a/tests/ReflectorFactory.php b/tests/ReflectorFactory.php index 936a2a47b..7384b8e2c 100644 --- a/tests/ReflectorFactory.php +++ b/tests/ReflectorFactory.php @@ -26,12 +26,12 @@ public static function create(string $cacheDir): QueryReflector $mode = getenv('DBA_MODE') ?: 'recording'; $reflector = getenv('DBA_REFLECTOR') ?: 'mysqli'; } else { - $host = $_ENV['DBA_HOST'] ?: 'mysql80.ab'; - $user = $_ENV['DBA_USER'] ?: null; - $password = $_ENV['DBA_PASSWORD'] ?: null; - $dbname = $_ENV['DBA_DATABASE'] ?: 'phpstan_dba'; - $mode = $_ENV['DBA_MODE'] ?: 'recording'; - $reflector = $_ENV['DBA_REFLECTOR'] ?: 'mysqli'; + $host = getenv('DBA_HOST') ?: $_ENV['DBA_HOST']; + $user = getenv('DBA_USER') ?: $_ENV['DBA_USER']; + $password = getenv('DBA_PASSWORD') ?: $_ENV['DBA_PASSWORD']; + $dbname = getenv('DBA_DATABASE') ?: $_ENV['DBA_DATABASE']; + $mode = getenv('DBA_MODE') ?: $_ENV['DBA_MODE']; + $reflector = getenv('DBA_REFLECTOR') ?: $_ENV['DBA_REFLECTOR']; } // make env vars available to tests, in case non are defined yet From 4e073ba56c73f5baa393c5859bbe48cd467eb4f5 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 28 Feb 2022 10:22:05 +0100 Subject: [PATCH 4/5] finalize --- bootstrap.php | 6 ++++++ tests/default/config/bootstrap.php | 2 +- tests/defaultFetchAssoc/config/bootstrap.php | 6 ++++++ tests/defaultFetchNumeric/config/bootstrap.php | 6 ++++++ tests/rules/config/bootstrap.php | 6 ++++++ tests/stringify/config/bootstrap.php | 6 ++++++ 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/bootstrap.php b/bootstrap.php index 4989f0c14..6d7510013 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -1,11 +1,17 @@ load(); +} + $config = RuntimeConfiguration::create(); $config->errorMode(RuntimeConfiguration::ERROR_MODE_EXCEPTION); // $config->debugMode(true); diff --git a/tests/default/config/bootstrap.php b/tests/default/config/bootstrap.php index dfa3e2079..58862a54b 100644 --- a/tests/default/config/bootstrap.php +++ b/tests/default/config/bootstrap.php @@ -9,7 +9,7 @@ if (false === getenv('GITHUB_ACTION')) { $dotenv = Dotenv::createImmutable(__DIR__.'/../../..'); - $dotenv->safeLoad(); + $dotenv->load(); } $config = RuntimeConfiguration::create(); diff --git a/tests/defaultFetchAssoc/config/bootstrap.php b/tests/defaultFetchAssoc/config/bootstrap.php index c4ceb4205..844ace2b4 100644 --- a/tests/defaultFetchAssoc/config/bootstrap.php +++ b/tests/defaultFetchAssoc/config/bootstrap.php @@ -1,5 +1,6 @@ load(); +} + $config = RuntimeConfiguration::create(); $config->errorMode(RuntimeConfiguration::ERROR_MODE_EXCEPTION); $config->defaultFetchMode(QueryReflector::FETCH_TYPE_ASSOC); diff --git a/tests/defaultFetchNumeric/config/bootstrap.php b/tests/defaultFetchNumeric/config/bootstrap.php index 9de8bbd16..a22663be1 100644 --- a/tests/defaultFetchNumeric/config/bootstrap.php +++ b/tests/defaultFetchNumeric/config/bootstrap.php @@ -1,5 +1,6 @@ load(); +} + $config = RuntimeConfiguration::create(); $config->errorMode(RuntimeConfiguration::ERROR_MODE_EXCEPTION); $config->defaultFetchMode(QueryReflector::FETCH_TYPE_NUMERIC); diff --git a/tests/rules/config/bootstrap.php b/tests/rules/config/bootstrap.php index 5b66d5846..58862a54b 100644 --- a/tests/rules/config/bootstrap.php +++ b/tests/rules/config/bootstrap.php @@ -1,11 +1,17 @@ load(); +} + $config = RuntimeConfiguration::create(); $config->errorMode(RuntimeConfiguration::ERROR_MODE_EXCEPTION); // $config->debugMode(true); diff --git a/tests/stringify/config/bootstrap.php b/tests/stringify/config/bootstrap.php index 814c7f206..4ed1aad54 100644 --- a/tests/stringify/config/bootstrap.php +++ b/tests/stringify/config/bootstrap.php @@ -1,11 +1,17 @@ load(); +} + $config = RuntimeConfiguration::create(); $config->errorMode(RuntimeConfiguration::ERROR_MODE_EXCEPTION); $config->stringifyTypes(true); From 0d44606b81c9389006a9d6e9b39139622f208ce0 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Mon, 28 Feb 2022 10:25:09 +0100 Subject: [PATCH 5/5] fix --- bootstrap.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap.php b/bootstrap.php index 6d7510013..b0ebbdbec 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -8,7 +8,7 @@ require_once __DIR__.'/vendor/autoload.php'; if (false === getenv('GITHUB_ACTION')) { - $dotenv = Dotenv::createImmutable(__DIR__.'/../../..'); + $dotenv = Dotenv::createImmutable(__DIR__); $dotenv->load(); }