|
17 | 17 | $engine = getenv("MYSQL_TEST_ENGINE") ?: "InnoDB";
|
18 | 18 | $socket = getenv("MYSQL_TEST_SOCKET") ?: null;
|
19 | 19 | $skip_on_connect_failure = getenv("MYSQL_TEST_SKIP_CONNECT_FAILURE") ?: true;
|
20 |
| - $connect_flags = (int)getenv("MYSQL_TEST_CONNECT_FLAGS") ?: 0; |
21 | 20 | if ($socket) {
|
22 | 21 | ini_set('mysqli.default_socket', $socket);
|
23 | 22 | }
|
24 | 23 |
|
25 | 24 | /* Development setting: test experimental features and/or feature requests that never worked before? */
|
26 | 25 | $TEST_EXPERIMENTAL = 1 == getenv("MYSQL_TEST_EXPERIMENTAL");
|
27 | 26 |
|
| 27 | + function get_environment_connection_flags(): int { |
| 28 | + static $connect_flags = null; |
| 29 | + if ($connect_flags === null) { |
| 30 | + $connect_flags = (int)getenv("MYSQL_TEST_CONNECT_FLAGS") ?: 0; |
| 31 | + } |
| 32 | + return $connect_flags; |
| 33 | + } |
| 34 | + |
28 | 35 | /**
|
29 | 36 | * Whenever possible, please use this wrapper to make testing of MYSQLI_CLIENT_COMPRESS (and potentially SSL) possible
|
30 | 37 | *
|
31 | 38 | * @param bool $enable_env_flags Enable setting of connection flags through env(MYSQL_TEST_CONNECT_FLAGS)?
|
32 | 39 | */
|
33 | 40 | function my_mysqli_connect($host, $user, $passwd, $db, $port, $socket, $enable_env_flags = true) {
|
34 |
| - global $connect_flags; |
35 |
| - |
36 |
| - $flags = $enable_env_flags? $connect_flags:0; |
| 41 | + $flags = $enable_env_flags? get_environment_connection_flags():0; |
37 | 42 | if ($flags !== 0) {
|
38 | 43 | $link = mysqli_init();
|
39 | 44 | if (!mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, $flags))
|
|
51 | 56 | * @param bool $enable_env_flags Enable setting of connection flags through env(MYSQL_TEST_CONNECT_FLAGS)
|
52 | 57 | */
|
53 | 58 | function my_mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, $flags = 0, $enable_env_flags = true) {
|
54 |
| - global $connect_flags; |
55 |
| - |
56 |
| - if ($enable_env_flags) |
57 |
| - $flags = $flags | $connect_flags; |
| 59 | + if ($enable_env_flags) { |
| 60 | + $flags = $flags | get_environment_connection_flags(); |
| 61 | + } |
58 | 62 |
|
59 | 63 | return mysqli_real_connect($link, $host, $user, $passwd, $db, $port, $socket, $flags);
|
60 | 64 | }
|
61 | 65 |
|
62 | 66 | class my_mysqli extends mysqli {
|
63 | 67 | public function __construct($host, $user, $passwd, $db, $port, $socket, $enable_env_flags = true) {
|
64 |
| - global $connect_flags; |
65 |
| - |
66 |
| - $flags = ($enable_env_flags) ? $connect_flags : 0; |
| 68 | + $flags = ($enable_env_flags) ? get_environment_connection_flags() : 0; |
67 | 69 |
|
68 | 70 | if ($flags !== 0) {
|
69 | 71 | parent::__construct();
|
|
113 | 115 |
|
114 | 116 | return true;
|
115 | 117 | }
|
116 |
| -?> |
|
0 commit comments