Я выполняю рефакторинг старого приложения PHP, внедряю тесты PHPUnit и Composer.
Я, очевидно, столкнулся с проблемой с глобальными переменными, и теперь я беспокоюсь, что, возможно, что-то не так в моем приложении..
У меня есть globals.inc.php с большим количеством констант, определенных с помощью define("SOME_VARIABLE","some value");
в том же файле, у меня определено соединение с базой данных с использованием некоторых констант;
$mysqlConn = new mysqli(MYSQL_HOSTNAME, MYSQL_USERNAME, MYSQL_PASSWORD, MYSQLDATABASENAME, 3306);
if ($mysqlConn->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqlConn->connect_errno . ") " . $mysqlConn->connect_error;
}
$mysqlConn->query("SET NAMES 'utf8'");
, который работает нормально, когда я запускаю приложение.Однако, когда я выполняю тесты PHPunit, я получаю Uncaught Error: вызов функции-члена query () со значением NULL для соединения с базой данных, реализованного так:
<?
include_once "globals.inc.php";
function somefunct{
global $mysqlConn;
if (!$QRY = $mysqlConn->query($strSQL)) {
error_log("Select failed[language::getLangArray()] : " . $mysqlConn->error);
} else {
//..more logic..
}
}
Я понимаю, чтопроблема связана с глобальные переменные равны нулю при использовании PHPUnit , но я не вижу решения ...
Версия PHP - 7