From c473688e673455479f062aafbaa9f1dafc3faaf8 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 28 Sep 2023 16:48:27 +0200 Subject: [PATCH] Tests: Support ssl in ReflectorFactory (#626) --- .env.dist | 1 + tests/ReflectorFactory.php | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.env.dist b/.env.dist index b0dd4c486..383a19671 100644 --- a/.env.dist +++ b/.env.dist @@ -2,5 +2,6 @@ DBA_HOST=mysql80.ab DBA_USER=testuser DBA_PASSWORD=test DBA_DATABASE=phpstan_dba +DBA_SSL=0 DBA_MODE=recording DBA_REFLECTOR=mysqli diff --git a/tests/ReflectorFactory.php b/tests/ReflectorFactory.php index 5ba7426bb..d3e5937f7 100644 --- a/tests/ReflectorFactory.php +++ b/tests/ReflectorFactory.php @@ -4,7 +4,6 @@ namespace staabm\PHPStanDba\Tests; -use mysqli; use PDO; use staabm\PHPStanDba\DbSchema\SchemaHasherMysql; use staabm\PHPStanDba\QueryReflection\MysqliQueryReflector; @@ -32,6 +31,7 @@ public static function create(string $cacheDir): QueryReflector $user = getenv('DBA_USER') ?: 'root'; $password = getenv('DBA_PASSWORD') ?: 'root'; $dbname = getenv('DBA_DATABASE') ?: 'phpstan_dba'; + $ssl = false; $mode = getenv('DBA_MODE') ?: self::MODE_RECORDING; $reflector = getenv('DBA_REFLECTOR') ?: 'mysqli'; } else { @@ -39,6 +39,7 @@ public static function create(string $cacheDir): QueryReflector $user = getenv('DBA_USER') ?: $_ENV['DBA_USER']; $password = getenv('DBA_PASSWORD') ?: $_ENV['DBA_PASSWORD']; $dbname = getenv('DBA_DATABASE') ?: $_ENV['DBA_DATABASE']; + $ssl = (bool) (getenv('DBA_SSL') ?: $_ENV['DBA_SSL'] ?? false); $mode = getenv('DBA_MODE') ?: $_ENV['DBA_MODE']; $reflector = getenv('DBA_REFLECTOR') ?: $_ENV['DBA_REFLECTOR']; } @@ -71,7 +72,11 @@ public static function create(string $cacheDir): QueryReflector $schemaHasher = null; if ('mysqli' === $reflector) { - $mysqli = new mysqli($host, $user, $password, $dbname); + $mysqli = mysqli_init(); + if (! $mysqli) { + throw new \RuntimeException('Unable to init mysqli'); + } + $mysqli->real_connect($host, $user, $password, $dbname, null, null, $ssl ? MYSQLI_CLIENT_SSL : 0); $reflector = new MysqliQueryReflector($mysqli); $schemaHasher = new SchemaHasherMysql($mysqli); } elseif ('pdo-mysql' === $reflector) {