PHP правильный способ вызова MySQL с использованием Intelephense - PullRequest
0 голосов
/ 25 февраля 2019

Этот код вызывает intelephense моего редактора для ошибки:

/**
 * Connect to database
 */
public function link() {
    global $config; mysqli_report(MYSQLI_REPORT_ERROR);
    try {
        return new \mysqli($config['db_hostname'], $config['db_username'], $config['db_password'], $config['db_name']);
    } catch (\exception $e) {
        throw new \exception($e->getMessage(), $e->getCode());
    }
}

Ожидается 6 аргументов.Найдено 4.intelephense (10005)

было бы хорошо, если бы я просто использовал:

return new \mysqli($config['db_hostname'], $config['db_username'], $config['db_password'], $config['db_name'],null,null);

Спасибо всем за ответы;также обмани меня, который исправил неправильный способ отловить исключение;

это отредактированный код:

/**
 * Connect to database
 */
public function link() {
    global $config; mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    try {
        return new \mysqli($config['db_hostname'], $config['db_username'], $config['db_password'], $config['db_name'], ini_get('mysqli.default_port'), ini_get('mysqli.default_socket'));
    } catch (\exception $e) {
        echo 'Cannot connect to a database server'; die();
    }
}

обратите внимание, это для того, чтобы исключить класс, используя пространства имен ...

1 Ответ

0 голосов
/ 28 февраля 2019

Плагин intelephense использует заглушки из PhpStorm.Автор уже представил PR, чтобы исправить это (и другие функции с необязательными параметрами): https://github.com/JetBrains/phpstorm-stubs/pull/520.

Как только это объединено и заглушки обновлены, вы больше не должны получать сообщение о проблеме, о которой сообщается вvscode.

Нет необходимости изменять вызов конструктора, это допустимый код и он будет выполняться без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...